Google Protobufのタイムスタンプを通常の日付に変換する必要があります。その状況では、Google ProtoバッファーのタイムスタンプをJava LocalDate
に直接変換する方法はありますか?
PubsubMessage pubsubMessage = message.getPubsubMessage();
String data = pubsubMessage.getData().toStringUtf8();
//System.out.println(pubsubMessage.getMessageId());
Timestamp timestamp = pubsubMessage.getPublishTime();
//System.out.println(timestamp);
Instant instant = Instant.ofEpochSecond(timestamp.getSeconds() ,
timestamp.getNanos());
ZoneId z = ZoneId.of("America/Montreal");
ZonedDateTime zdt = instant.atZone(z);
LocalDateTime ldt = zdt.toLocalDateTime();
System.out.println("today's date==> "+ldt.getDayOfMonth());
上記のコードは間違いなく動作します。