【问题标题】:Trouble converting String to Date in Java [duplicate]在Java中将字符串转换为日期时遇到问题[重复]
【发布时间】:2017-02-28 06:27:05
【问题描述】:

我在String 中有一个约会:

String string = "16.03.2017, 09:22";

我正在尝试将其转换为Date

Locale russianLocale = new Locale.Builder().setLanguage("ru").setRegion("RU").build();
Date date = new SimpleDateFormat("DD.MM.YYYY, HH:mm",russianLocale).parse(string);

无论我给这个函数什么值,它都会打印日期“Mon Dec 26 09:22:00 MSK 2016”。时间值是当前值,但日期始终相同。

这是怎么引起的,我该如何解决?

【问题讨论】:

    标签: java date data-conversion


    【解决方案1】:

    您的日期格式不正确。使用这一行替换代码中的那一行:

    date = new SimpleDateFormat("dd.MM.yyyy, HH:mm", russianLocale).parse(string);
    

    完整代码:

    private static Date convertStringToDate(String string) {
        Date date = new Date();
        Locale russianLocale = new Locale.Builder().setLanguage("ru").setRegion("RU").build();
        try {
            date = new SimpleDateFormat("dd.MM.yyyy, HH:mm", russianLocale).parse(string);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您的格式模式不正确。使用的代码区分大小写。 ddyyyy 应为小写。

      您也忽略了时区的关键问题。

      而且您正在使用麻烦的旧旧日期时间类,例如 DateSimpleDateFormat。请改用现代 java.time 类。 Stack Overflow 上有数百个关于此主题的现有问题和解答。搜索类名 ZoneId、LocalDateTime、ZonedDateTime 和 DateTimeFormatter。

      DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd.MM.uuuu, HH:mm" );
      LocalDateTime ldt = LocalDateTime.parse(  "16.03.2017, 09:22" , f );
      

      【讨论】:

      • 是的,这就是问题所在,谢谢
      【解决方案3】:

      只需更改 SimpleDateFormat cunstructor 中的格式。您使用了错误的格式化程序 DD.MM.YYYY, HH:mm。所以只需将其替换为“dd.MM.yyyy, HH:mm”

      私有静态日期 convertStringToDate(String string) { 日期日期 = 新日期(); Locale russianLocale = new Locale.Builder().setLanguage("ru").setRegion("RU").build(); 尝试 { date = new SimpleDateFormat("dd.MM.yyyy, HH:mm",russianLocale).parse(string); } 捕捉(ParseException e){ e.printStackTrace(); } 归期; }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-30
        • 2017-11-20
        • 1970-01-01
        • 2023-03-30
        • 2020-01-24
        • 2011-06-08
        相关资源
        最近更新 更多