【问题标题】:I try to convert a String to Date format in java but has an exception我尝试在java中将字符串转换为日期格式但有一个异常
【发布时间】:2020-05-13 06:13:30
【问题描述】:

我尝试将String 转换为Date 格式,但出现异常!

这是我的代码:

SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
startDate = format.parse(startDateString);

它应该将"14-MAY-2004" 转换为Date。谢谢。

【问题讨论】:

  • “出现异常”,你能说得更具体一点吗?
  • 你有:dd-MMM-yyyy 日期应该是dd-MM-yyyy。如果你想用 MONTH 来命名它。您必须使用 LocalDate 和格式“dd-LLLL-yyyy”
  • 什么是例外?
  • @Luxusproblem 不。 MM 表示月份的数字表示。 “五月”是 MMM
  • 这可能表现为特定于语言环境的;您是否指定了英语语言环境?在stackoverflow.com/questions/57615971/…中查看我的回答

标签: java string date exception format


【解决方案1】:

java.time

我建议您使用现代 Java 日期和时间 API java.time 进行日期工作。

    DateTimeFormatter dateFormatter = new DateTimeFormatterBuilder()
            .parseCaseInsensitive()
            .appendPattern("d-MMM-uuuu")
            .toFormatter(Locale.ENGLISH);

    String startDateString = "14-MAY-2004";
    LocalDate startDate = LocalDate.parse(startDateString, dateFormatter);

    System.out.println(startDate);

输出是:

2004-05-14

仅当您对于尚未升级到 java.time 的遗留 API 必不可少的需要 Date 对象时,才转换:

    Instant startOfDay = startDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
    Date oldfashionedDate = Date.from(startOfDay);

    System.out.println(oldfashionedDate);

在我的时区输出:

2004 年 5 月 14 日星期五 00:00:00 CEST

你的代码出了什么问题?

几乎可以肯定是语言环境问题。您没有指定语言环境,因此没有指定月份名称或缩写的语言。当日期字符串包含某种语言的文本时,请始终这样做。您的 SimpleDateFormat 使用的是 JVM 的默认格式化语言环境,如果那是非英语语言环境,则解析被视为失败,并出现您提到的异常。

链接

【讨论】:

    【解决方案2】:

    从语句“它应该将 14-MAY-2004 转换为日期”我假设您的输入字符串是 14-MAY-2004 并且您希望将此字符串转换为日期

    String js="14-May-2004";
            Date dt=new Date(js);
            LocalDateTime localDateTime=dt.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
            localDateTime.format(DateTimeFormatter.ofPattern("dd-MM-yyyy"));//or in the same format use- "dd-MMM-yyyy"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-08
      • 2016-11-01
      • 2023-03-15
      • 1970-01-01
      • 2020-04-11
      • 2013-09-14
      • 2021-07-27
      • 1970-01-01
      相关资源
      最近更新 更多