【发布时间】:2021-06-22 23:48:15
【问题描述】:
我想将字符串解析为日期,但获得的日期不正确。我的代码是这样的:
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yy hh.mm.ss.S a");
date1 = df.parse("17-DEC-19 05.40.39.364000000 PM");
但 date1 是:2019 年 12 月 21 日星期六 22:47:19 IRST
我需要约会:* 2019 年 12 月 17 日 17:40:39 IRST
【问题讨论】:
-
这里有溢出,即您添加的那些 milli 秒被解释为 364000 秒或 4 天 5 小时 6 分 40 秒。这些被添加到解析的日期。尝试添加
df.setLenient(false),你应该得到一个错误。 -
我建议你不要使用
SimpleDateFormat和Date。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDateTime和DateTimeFormatter。
标签: java date parsing simpledateformat