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

Java 如何为不同的时区获取特定的日期和时间戳?,java,datetime,timestamp,timezone,Java,Datetime,Timestamp,Timezone,在我的例子中,我有两个字符串,一个是这种格式的contains(YYYY-MM-DD),另一个是这种格式的contain(HH:MM:SS)。我需要将其转换为PST时间戳,其中包含这些字符串中提到的日期和时间,而不包含TimeZone.setDefault()方法。我的服务器时区是协调世界时。java.Time 代码段的输出为: 洛杉矶时区的时间戳: 2019-11-30T13:00:45-08:00[美国/洛杉矶] 我正在利用您的每个字符串都是ISO8601格式的事实。现代java日期和时间A

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

java.Time 代码段的输出为:

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

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

我假设你所说的太平洋标准时间是指太平洋时间(根据一年中的时间是标准时间还是白天)。我真不敢相信你一年都想要太平洋标准时间。如果您指的是菲律宾标准时间,请使用亚洲/马尼拉。如果您打算使用皮特凯恩标准时间,请指定太平洋/皮特凯恩

链接
  • 解释如何使用java.time

附加两个字符串,创建
DateTimeFormatter
并根据此格式获取
LocalDateTime
您有一个日期和时间。但什么是原始区域?你的意思是日期和时间应始终被视为PST吗?(顺便说一句,不要使用三个字母的首字母缩写词。使用地区/城市格式)。还是要从其他时区转换为PST?原始时区是协调世界时。只有相应的日期和时间必须转换为(太平洋标准时间)时间戳
    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);