将分区时间戳转换为 com.google.protobuf.Timestamp
Convert zoned timestamp to com.google.protobuf.Timestamp
在我使用 Swagger 创建的自定义 API 中,我需要输入时间戳。
在我的 YAML 文件中,我已将输入参数的格式定义为 date-time
,如 Swagger 网页上所述 date-time – the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
我想将生成的分区时间戳转换为 com.google.protobuf.Timestamp
,但我不知道该怎么做,需要帮助。我正在使用 Kotlin。
到目前为止,我已经尝试实现一些来自 Whosebug 的 Java 示例(在转换为 Kotlin 之后),例如:
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX")
.format(new Date()));
和
LocalDateTime withoutTimezone = zoneDateTime.toLocalDateTime();
Timestamp timestamp = Timestamp.valueOf(withoutTimezone));
None 的示例似乎有效,因为我需要 com.google.protobuf.Timestamp
格式的输入参数,而上述示例不会产生这种格式。
任何有关如何转换时间戳的帮助将不胜感激。
我还没有测试过,但是通过阅读 com.google.protobuf.Timestamp
文档,这似乎是一个选项:
String exampleInput = "2020-08-27T20:13:10+02:00";
Instant javaTimeInstant = OffsetDateTime.parse(exampleInput).toInstant();
com.google.protobuf.Timestamp ts = com.google.protobuf.Timestamp.newBuilder()
.setSeconds(javaTimeInstant.getEpochSecond())
.setNanos(javaTimeInstant.getNano())
.build();
我正在使用 Java。您或许可以自己手动翻译成 Kotlin?
文档 link: com.google.protobuf.Timestamp
在我使用 Swagger 创建的自定义 API 中,我需要输入时间戳。
在我的 YAML 文件中,我已将输入参数的格式定义为 date-time
,如 Swagger 网页上所述 date-time – the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
我想将生成的分区时间戳转换为 com.google.protobuf.Timestamp
,但我不知道该怎么做,需要帮助。我正在使用 Kotlin。
到目前为止,我已经尝试实现一些来自 Whosebug 的 Java 示例(在转换为 Kotlin 之后),例如:
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX")
.format(new Date()));
和
LocalDateTime withoutTimezone = zoneDateTime.toLocalDateTime();
Timestamp timestamp = Timestamp.valueOf(withoutTimezone));
None 的示例似乎有效,因为我需要 com.google.protobuf.Timestamp
格式的输入参数,而上述示例不会产生这种格式。
任何有关如何转换时间戳的帮助将不胜感激。
我还没有测试过,但是通过阅读 com.google.protobuf.Timestamp
文档,这似乎是一个选项:
String exampleInput = "2020-08-27T20:13:10+02:00";
Instant javaTimeInstant = OffsetDateTime.parse(exampleInput).toInstant();
com.google.protobuf.Timestamp ts = com.google.protobuf.Timestamp.newBuilder()
.setSeconds(javaTimeInstant.getEpochSecond())
.setNanos(javaTimeInstant.getNano())
.build();
我正在使用 Java。您或许可以自己手动翻译成 Kotlin?
文档 link: com.google.protobuf.Timestamp