【问题标题】:Java parse string as date "2017-06-12T14:45:00+05:30" [closed]Java将字符串解析为日期“2017-06-12T14:45:00+05:30”[关闭]
【发布时间】:2017-06-05 09:35:26
【问题描述】:

如何在 Java 中将此字符串解析为日期 “2017-06-12T14:45:00+05:30” 我试过使用 SimpleDateFormat 但它抛出异常。 谢谢

【问题讨论】:

标签: java string date parsing


【解决方案1】:

这似乎是一个有效的 ISO 偏移日期时间格式,所以这应该可以在不需要格式化程序的情况下工作:

OffsetDateTime date = OffsetDateTime.parse(input);

如果你真的需要java.util.Date,那么你可以使用:

Date legacyDate = Date.from(date.toInstant());

【讨论】:

    【解决方案2】:
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ENGLISH);
    Date date = format.parse(string);
    

    日期是你的解决方案

    【讨论】:

    • 不,它说无法解析日期:“2017-06-12T14:45:00+05:30”
    • 我建议你远离DateFormatSimpleDateFormatDate 等长期过时的课程。现代类 lke OffsetDateTime 对程序员更友好。一个额外的好处是提到的类从问题中解析 ISO 8601 字符串,没有明确的格式。
    【解决方案3】:

    只需在 SimpleDateForamt 中提供正确的模式

        String startDateString = "09/23/2009";
    DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
    Date startDate;
    try {
        startDate = df.parse(startDateString);
        String newDateString = df.format(startDate);
        System.out.println(newDateString);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    

    【讨论】:

    • 要解析“2017-06-12T14:45:00+05:30”
    • 试试新的 SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ENGLISH);
    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    相关资源
    最近更新 更多