如何获取不同时区java的特定日期和时间时间戳?

时间:2019-12-02 13:53:11

标签: java datetime timestamp timezone

在我的情况下,我有两个字符串,其中一个包含(YYYY-MM-DD)格式,另一个字符串包含(HH:MM:SS)。我需要将这些字符串中提到的日期和时间转换为PST时间戳,而无需使用TimeZone.setDefault()方法。我的服务器时区为协调世界时。

1 个答案:

答案 0 :(得分:0)

java.time

    String dateStringUtc = "2019-11-30";
    String timeStringUtc = "21:00:45";

    LocalDate date = LocalDate.parse(dateStringUtc);
    LocalTime time = LocalTime.parse(timeStringUtc);
    ZonedDateTime pstDateTime = date.atTime(time)
            .atOffset(ZoneOffset.UTC)
            .atZoneSameInstant(ZoneId.of("America/Los_Angeles"));
    System.out.println("Timestamp in Los Angeles time zone: " + pstDateTime);

摘要的输出是:

  

洛杉矶时区的时间戳:   2019-11-30T13:00:45-08:00 [美国/洛杉矶]

我正在利用您的每个字符串都是ISO 8601格式的事实。现代Java日期和时间API java.time的类将ISO 8601格式解析为默认格式,即没有任何显式格式化程序。

我假设PST是指太平洋时间(根据一年中的时间为标准时间或夏令时)。我简直不敢相信您一年四季都想要太平洋标准时间。如果您的意思是菲律宾标准时间,请使用亚洲/马尼拉。如果要使用皮特凯恩标准时间,请指定太平洋时间/皮特凯恩。

链接

相关问题