Java 如何为不同的时区获取特定的日期和时间戳?
在我的例子中,我有两个字符串,一个是这种格式的contains(YYYY-MM-DD),另一个是这种格式的contain(HH:MM:SS)。我需要将其转换为PST时间戳,其中包含这些字符串中提到的日期和时间,而不包含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
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);