尝试使用Java将时间戳转换为任何区域的时间,这里我可以使用ZoneID进行转换,但是它将返回字符串数据类型。在这里,我期望像getTimeMillis()这样的输出
Instant now = Instant.ofEpochMilli(lngDate);
ZoneId zoneId = ZoneId.of("America/Chicago");
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(now, zoneId);
DateTimeFormatter isoDateFormatter = DateTimeFormatter.ISO_DATE_TIME;
String zdt = zonedDateTime.format(isoDateFormatter);
在这里,我期望只有时间毫秒(8位数字),并且在下面为您提供我的代码,请您帮忙解决它。
输入:1552979609000L
DateTimeFormatter isoDateFormatter = DateTimeFormatter.ISO_TIME;
String zdt = zonedDateTime.format(isoDateFormatter); // output in string : 00:13:29-07:00
LocalTime time = LocalTime.parse(zdt, isoDateFormatter); // output in local time : 00:13:29
答案 0 :(得分:0)
如果我的理解正确,那么您希望一天中的毫秒数(即int
中从00:00:00开始的毫秒数,从0(含)增加到8,640万(不含);到8位数字)。 ChronoField
枚举为此具有一个常量,因此当您知道如何做到这一点时就很简单:
int millisecondOfDay = zonedDateTime.get(ChronoField.MILLI_OF_DAY);
System.out.println("Millisecond of day: " + millisecondOfDay);
现在运行时的输出:
一天中的毫秒:7773854