java - Instant.now 相当于 java.util.Date 或 Java 7

标签 java datetime java-8 java-7 datetime-format

我有一个使用 Java 7 的系统,我需要生成一个等效于 Instant.now (Java 8) 的日期。

例如,Instant.now().toString() 生成这样的日期: “2018-12-19T12:32:46.816Z”

使用 java.util.Date 我有这个日期:"2018-12-19T10:38:13.892"

    Date date = new Date(System.currentTimeMillis());
    SimpleDateFormat sdf;
    sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
    String text = sdf.format(date);
    System.out.println(text);

我不知道是否可以在此日期结束时简单地连接一个“Z”

如果没有 "Z",另一个使用 Instant.parse 解析此日期的系统会抛出错误:

java.time.format.DateTimeParseException: Text '2018-12-19T10:38:13.892' could not be parsed at index 23 at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1988) at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1890) at java.base/java.time.Instant.parse(Instant.java:395)

最佳答案

Z 表示 UTC time zone ,您可以将时区设置为 UTC 并手动附加 Z:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

关于java - Instant.now 相当于 java.util.Date 或 Java 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53851881/

相关文章:

hibernate - JPA - 使用转换器保留 @Temporal LocalDate

java - 如何编写与正常流程分开的区域特定逻辑?

java - 任意字符串到恒定长度的小写字母数字字符串

java - 是否可以扩展 Android Camera 类?

java - 如何确定一周中周五和周日之间特定时间的日期

java - 自动增加 SWT Datetime 的日期

java - 如何在java 8中初始化二维数组

JAVA过滤目录内的文件

java - Camel 消费者: Dynamic Delay Times

c# - 如何在月底将日期添加到 DateTime?