这个问题在这里已经有答案了:
向hh:mm:ss.ssss格式的时间戳字符串添加尾随零(2个答案)
24天前关门。
我想将多个字符串日期格式转换为时间戳
例如,我有如下一串日期
String date1 = "2020-01-01 12:23:30.345"
String date2 = "2020-01-01 12:23:30"
String date3 = "2020-01-01 12:23"
String date4 = "2020-01-01 12"
我想把上面所有的字符串格式转换成时间戳,
For date1, Timestamp should be 2020-01-01 12:23:30.345 UTC
For date2, Timestamp should be 2020-01-01 12:23:30.000 UTC
For date3, Timestamp should be 2020-01-01 12:23:00.000 UTC
For date4, Timestamp should be 2020-01-01 12:00:00.000 UTC
你能帮我做这个吗?任何信息都会非常有用。我不能为解析器定义单一的字符串格式,因为在我的场景中字符串格式是不可预测的。
2条答案
按热度按时间ar5n3qh51#
您可以使用两个格式化程序一个进行转换
String
至LocalDateTime
另一个要转换LocalDateTime
达到预期效果String
:输出
mdfafbf12#
对于缺少的零件,可以使用可选的图案(内方括号)。你也可以使用
DateTimeFormatterBuilder#parseDefaulting
将时间的缺失部分默认为0
或任何其他值。输出:
更新
这是一个更新的基础上,op的要求有时区的日期和时间。
LocalDateTime
没有时区信息。为了获得时区信息,您需要将其转换为ZonedDateTime
.演示:
输出: