Java - 将带有时区的unix时间(以毫秒为单位)转换为时间戳

标签 java time timezone unix-timestamp converters

我有一个字符串,例如:

1517439600000+0100

我想将其转换为以毫秒为单位的unix时间,没有时区。 我该怎么做?

附: 1)我不能使用 substring(0,5) 并向字符串添加 3.6m 毫秒,因为我有很多时区,一次是 +0100,然后是 +0200 等等...

2) 如果更容易转换为常规时间戳,如 YYYY-mm-dd hh:mm:ss 应该没问题。

最佳答案

你可以这样做:

    String sign = "+";
    String [] parts = time.split(sign);

    Long millis = Long.parseLong(parts[0]);
    String zoneOffset = sign + parts[1];

    LocalDate date = Instant.ofEpochMilli(millis).atZone(ZoneOffset.of(zoneOffset)).toLocalDate();

关于Java - 将带有时区的unix时间(以毫秒为单位)转换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52531649/

相关文章:

ruby-on-rails - ruby on Rails 是否存在时区偏移错误?

java - 连接身份验证失败JDBC

java - 空白位置查找

java - Camunda测试部署注释未部署

php - 将选定的时间戳(带工作日)更改为 Fr、Mo 等

c - 为什么 localtime() 在 DST 结束并且时间回落一小时时将 tm_isdst 标志设置为 1 小时

java - 在另一个实例变量中使用 Autowiring 参数

search - 三元搜索算法的时间复杂度

c# - 应用程序在重新启动之前看不到系统时区更改

c# - 在 Elasticsearch 和嵌套中传递和比较具有不同时区的日期时间值