यदि आप कल्पना कर सकते हैं तो यह मेरे सॉफ़्टवेयर में वाई 2 के-स्टाइल बग का कारण बनता है। अजीब बात यह है कि साल-दर-साल की गणना केवल वर्ष में दो दिनों के लिए होती है, जो मुझे कम यकीन है कि समस्या निवारण कैसे करें।जावा दिनांक वर्ष गणना दो दिन के लिए बंद है
उत्पादन:
03-Jan-2013
02-Jan-2013
01-Jan-2013
31-Dec-2013 ** strange
30-Dec-2013 ** strange
29-Dec-2012
28-Dec-2012
27-Dec-2012
26-Dec-2012
25-Dec-2012
मुझे यकीन है कि जो जावा तारीख उपयोगिताओं का हिस्सा इस तरह के एक त्रुटि का कारण बन सकता नहीं हूँ।
कोड (के बाद से परीक्षण इतना छोटा मैं एक पूरा काम कर कार्यक्रम शामिल है):
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateT {
private static String getFormattedBackscanStartTime(int days) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-YYYY");
Calendar workingDate = Calendar.getInstance();
workingDate.add(Calendar.DATE, -1 * days);
String formattedStartTime = dateFormat.format(workingDate.getTime());
return formattedStartTime;
}
public static void main(String args[]) {
for(int i = 35; i < 45; i++) {
System.out.println(getFormattedBackscanStartTime(i));
}
}
}
मुझे लगता है कि आपको इससे फायदा होगा। https://forums.oracle.com/forums/thread.jspa?threadID=2096000 – Achrome
ध्यान रखें कि 'कैलेंडर' और 'SimpleDateFormat' कक्षाएं अब [विरासत] हैं (https://en.wikipedia.org/wiki/ विरासत प्रणाली)। [Java.time] द्वारा प्रत्याशित (https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) कक्षाएं। एक आधुनिक दृष्टिकोण 'लोकलडेट', 'जोनआईडी', और' डेटटाइमफॉर्मेटर 'कक्षाओं का उपयोग करता है। डीबगिंग चरण –