我正在尝试将字符串解析为日期对象,作为我的程序加载功能的一部分,如下所示:
String dateString = "Wed Jan 18 23:22:18 EST 2017";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz YYYY");
try {
Date scheduleItemDate = sdf.parse(dateString);
System.out.println(scheduleItemDate.toString());
}
catch (ParseException e) {
System.out.println("Exception");
}
尽管日期应与上面的 dateString 中的日期相同,但程序会打印出以下日期:
Wed Jan 04 23:22:18 EST 2017
上面的日期基本上比原始日期晚了整整两周,我不确定我是如何得到这个的,我做错了什么吗?
最佳答案
小时应该是 HH
,而不是 hh
h Hour in am/pm (1-12)
年份应该是yyyy
而不是YYYY
Y Week year
请务必咨询JavaDocs首先
String dateString = "Wed Jan 18 23:22:18 EST 2017";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
try {
Date scheduleItemDate = sdf.parse(dateString);
System.out.println(dateString);
System.out.println(scheduleItemDate.toString());
System.out.println(sdf.format(scheduleItemDate));
} catch (ParseException e) {
System.out.println("Exception");
}
现在打印...
Wed Jan 18 23:22:18 EST 2017
Wed Jan 18 23:22:18 EST 2017
Wed Jan 18 23:22:18 EST 2017
关于java - 在 Java 中从字符串中解析日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43827603/