java - 在 Java 中从字符串中解析日期?

标签 java date

我正在尝试将字符串解析为日期对象,作为我的程序加载功能的一部分,如下所示:

    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/

相关文章:

javascript - 我如何告诉 javascript 在序列化时不要将日期对象转换为 UTC

javascript - 更改新的日期格式

java - 缺少 return 语句的错误

java - Maven发布不调用资源:resources plugin

sql-server - Excel 错误地将 Date 转换为 Int

javascript - 仅含 mm/yyyy 的 Html 文本框

javascript - 为什么 new Date().setHours(18) 返回数字而不是日期?

java - 当类路径中包含两个相同的 jar 时,JVM 是如何工作的

java - 带 Jersey 和 JAXB 的编码列表<T>

java - 如何退出全屏后重新显示状态栏+导航栏出现后不会消失