从date.getTime()中获取毫秒数

问题描述 投票:-1回答:1

我需要获取格式的日期时间字符串

"yyyy-MM-dd'T'HH:mm:ss.SSSZ"

其中SSS是毫秒数(从000到999)。

我写了以下代码片段:

Date date=Calendar.getInstance().getTime();
String currentDateTimeString = (String) android.text.format.DateFormat.
       format("yyyy-MM-dd'T'HH:mm:ss.SSSZ",Calendar.getInstance().getTime());

但是我得到类似的字符串

“ 2019-11-08T13:39:33.SSSZ”

由于此答案中所述的某些问题

https://stackoverflow.com/a/58768066/930835

所以我尝试了此代码

Date date=Calendar.getInstance().getTime();
    String currentDateTimeString = (String) android.text.format.DateFormat.
           format("yyyy-MM-dd'T'HH:mm:ss",date);
    long ms=date.getTime() %1000;
    currentDateTimeString=currentDateTimeString+"."+String.valueOf(ms)+"Z";

但是我不知道它是否可靠,也就是说,它是否正确计算出该Date瞬间的毫秒数。

java datetime timestamp milliseconds integer-division
1个回答
0
投票

从Java 8及更高版本开始,您可以使用ZonedDateTime

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

String dateTime = ZonedDateTime.now(ZoneId.systemDefault()).format(formatter);

OffsetDateTime

String offSetDateTime = OffsetDateTime.now(ZoneId.systemDefault()).format(formatter);
© www.soinside.com 2019 - 2024. All rights reserved.