ParseException:无可避免的日期异常



谢谢。

系统默认场所差异。

SimpleDateFormat Sdf = new SimpleDateFormat(" MMM D,Yyyy H:MM:SS A",locale.English);

解决。

字符串到日期错误

字符串:Feb 13, 2017 10:25:43 AM

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy h:mm:ss a");

MMM d, yyyy h:mm:ss aMMM d, yyyy hh:mm:ss aMMM dd, yyyy h:mm:ss aMMM dd, yyyy hh:mm:ss aMMM dd, yyyy H:mm:ss aMMM dd, yyyy HH:mm:ss a...等

parseexception :::::无法避免的日期:" 2017年2月13日上午10:25:43"

plz帮助。

tl; dr

LocalDateTime.parse( 
    "Feb 13, 2017 10:25:43 AM" , 
    DateTimeFormatter.ofPattern( "MMM d, uuuu hh:mm:ss a" , Locale.US )  
)

2017-02-13T10:25:43

java.Time

您正在使用麻烦的旧日期类别,这些类别现在是遗产,由 java.time 类取代。

指定格式模式以匹配您的输入。请注意,我们通过Locale来指定翻译月份名称等的人类语言和文化规范。

String input = "Feb 13, 2017 10:25:43 AM" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MMM d, uuuu hh:mm:ss a" , Locale.US ) ;

您的输入字符串缺少时区域或Offset-from-UTC的任何指标。因此将其解析为LocalDateTime

LocalDateTime ldt = LocalDateTime.parse( input , f  );

ldt.tostring():2017-02-13T10:25:43

顺便说一句,如果您的输入在一年之后有逗号,则您可以使用自动局部式格式器来解析,而不是费心定义格式化模式。这个逗号显然是美国的常态(至少)。

String input = "Feb 13, 2017, 10:25:43 AM" ;  // With a comma after year, apparently the norm in the United States.
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.MEDIUM ).withLocale( Locale.US )
LocalDateTime ldt = LocalDateTime.parse( input , f  );

关于 java.time

java.Time 框架内置在Java 8及以后的框架中。这些类取代了麻烦的旧旧日期时间类,例如java.util.DateCalendar&SimpleDateFormat

现在处于维护模式的 joda time 项目建议迁移到Java.Time类。

要了解更多信息,请参见 oracle教程。并搜索堆栈溢出以获取许多示例和解释。规格是JSR 310。

您可以直接与数据库交换 java.time 对象。使用符合JDBC 4.2或更高版本的JDBC驱动程序。无需字符串,不需要java.sql.*类。

从哪里获得Java.Time课程?

  • Java SE 8 Java SE 9 ,然后
    • 内置。
    • 标准Java API的一部分,具有捆绑的实现。
    • Java 9添加了一些次要功能和修复。
  • Java SE 6 Java SE 7
    • 大部分Java.Time功能都回到Java 6&7在 Threeten-Backport
  • Android
    • Java.Time类的Android Bundle实现的后来版本。
    • 对于较早的Android, threetenabp 项目适应 threeten-backport (如上所述)。请参阅如何使用Threetenabp…

Threeten-Extra 项目扩展了Java.Time,并提供其他类。该项目是可能将来在Java.Time中增加的遗嘱。您可能在这里找到一些有用的类,例如IntervalYearWeekYearQuarter等。

最新更新