使用Java将带时区偏移的日期和时间转换为时间戳

时间:2020-11-04 09:16:19

标签: java datetime timestamp timezone timezone-offset

我正在尝试使用Java将2020-11-03T14:03:45.173649-05:00转换为时间戳。

我在这里尝试使用Timestamp.valueOf("2020-11-03T14:03:45.173649-05:00");,但收到错误消息说java.lang.IllegalArgumentException:Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]。有什么方法可以将具有时区偏移的日期时间转换为时间戳?

1 个答案:

答案 0 :(得分:1)

由于这是ISO格式,最简单的方法是先获取OffsetDateTime,然后转换为Timestamp

var input = "2020-11-03T14:03:45.173649-05:00";
var odt = OffsetDateTime.parse(input);
var ts = Timestamp.from(odt.toInstant());

或者,您可以使用SimpleDateFormat来解析字符串。