为什么使用SimpleDateFormat从字符串中解析日期时得到错误的结果? (Java)

问题描述 投票:0回答:1

我正在尝试从字符串中解析日期,但是我得到了错误的日期结果,并且不明白为什么:/

String dateStr = "September 6, 2013 - 10:48";
SimpleDateFormat parser = new SimpleDateFormat("MMMM dd, YYYY - HH:mm", Locale.US);
Date date = parser.parse(dateStr);

[当我查看日期结果(在调试器中)时,我看到:CET 2012年12月30日10:48:00有人可以告诉我我错了吗?

java date parsing
1个回答
2
投票
        String dateStr = "September 6, 2013 - 10:48";
        SimpleDateFormat parser = new SimpleDateFormat(
                "MMMM dd, yyyy - hh:mm", Locale.US);
        Date date = parser.parse(dateStr);
        System.out.println(date);

使用yyyy而不是YYYY

也不要使用日期,而是使用LocalDateLocalDateTime

这是使用LocalDateTime的方式>>

        String dateStr = "September 6, 2013 - 10:48";
        DateTimeFormatter format = DateTimeFormatter.ofPattern(
                "MMMM d, y - HH:mm",Locale.US);
        LocalDateTime date = LocalDateTime.parse(dateStr,format);
        System.out.println(date.format(format));

请注意,由于您的日期字符串中未包含AM或PM,因此HH将持续24小时。

© www.soinside.com 2019 - 2024. All rights reserved.