Why I get a wrong result when parsing a date from string with SimpleDateFormat ? (Java) [duplicate]

元气小坏坏 提交于 2021-01-29 20:12:29

问题


I'm trying to parse a date from string but i get a wrong date result and dont understand why :/

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

When I look date result (in debugger) i see : Sun Dec 30 10:48:00 CET 2012 Can someone tell me where I'm wrong please ?


回答1:


        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);

Use yyyy and not YYYY

Also don't use Date but use LocalDate and LocalDateTime.

Here is how you would do it using 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));

Note the HH is for 24 hour time since you didn't include an AM or PM in your date string.



来源:https://stackoverflow.com/questions/61065816/why-i-get-a-wrong-result-when-parsing-a-date-from-string-with-simpledateformat

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!