[英]Java SimpleDateFormat parsing oddity
我很困惑為什么這不起作用。 無論我將日期更改為什么,它都會打印出相同的內容。 這里發生了什么?
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
String s = "11/22/2000";
Date d = sdf.parse(s);
System.out.println(d.toString());
輸出: Sun Dec 26 00:00:00 CST 1999
您使用的是YYYY
,它是星期年份,而不是“正常”年份。 通常只與星期幾和一年中的指定符一起使用。
這里的確切行為將很難解釋-可行,但不是很有幫助。 基本上,解決方案是“不要那樣做”。 你想要的格式字符串MM/dd/yyyy
,而不是-注意的情況下, yyyy
。
(作為附帶說明,如果您可以使用Java 8或Joda Time中的java.time.*
,則在Java中有日期/時間問題的時間會好很多。這不會影響此特定問題,但是通常是個好主意...)
采用
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy")
代替
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.