3 回答
TA贡献2080条经验 获得超4个赞
您可以使用Java 8及更高版本的java.time包:
ZonedDateTime zonedDateTime = Instant.ofEpochMilli(1566817891743L).atZone(ZoneOffset.UTC);
TA贡献1906条经验 获得超3个赞
我不明白为什么你要创建一个新的 DateTime,然后从那里获取毫秒(如果你一开始就已经有毫秒了)。也许我误解了你的问题。毫秒与时区无关。时区用于比较两个不同地点的同一时刻并获取各自的日期。这是我的解决方案
如果你想要一个毫秒的时间戳:
long eventDate = 1566297258721L;
Timestamp time=new Timestamp(eventDate);
System.out.println(time);
结果将是2019-08-20 10:34:18.721,也是希望的 SQL 格式
如果您想将某个时刻从一个时区转换为另一个时区:
您将获得实际时区的时刻,并将其转换为不同的时区,以便查看其他国家/地区的时间
long eventDate = 1566297258721L;
Calendar calendar = Calendar.getInstance();
calendar.setTime(eventDate);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
dateFormat.format(calendar.getTime());
我希望这些片段有用。快乐编程!
TA贡献1966条经验 获得超4个赞
您可以尝试以下操作,
long eventDate = 1566297258721L;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z", Locale.US);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String stringDate = simpleDateFormat.format(new Date(eventDate));
System.out.println(stringDate);
它给了我以下输出。
2019-08-20 10:34:18 协调世界时
添加回答
举报