UTC0时间和太平洋时间转换
Posted 做猪呢,最重要的是开森啦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UTC0时间和太平洋时间转换相关的知识,希望对你有一定的参考价值。
1. 关系:
- UTC0时间长这样:2022-02-04T02:33:15.000Z
- UTC0时间 = 太平洋时间(PST) + 8h
- 题外: 北京时间 = UTC0 时间 + 8 h = 太平洋时间 + 8h + 8h = PST + 16h
2. 转换:
2.1. mysql中转换:
【场景】:数据库中存储了UTC0时间,接口要求返回太平洋时间
【栗子】:status_time存储为UTC0时间 : 2022-02-09T22:31:59.000Z
【转换】:DATE_FORMAT(date_sub(orl.status_time, interval 8 hour), ‘%Y-%m-%d %T’) status_time,
【结果】:2022-02-09 14:31:59
2.2. Java代码中转换:
【结果】:2022-02-09 14:31:59
public static void main(String[] args)
LocalDateTime time = zeroString2DesTimeZone("2022-02-09T22:31:59.001Z", "America/Los_Angeles");
System.out.println(time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
public static LocalDateTime zeroString2DesTimeZone(String time, String desTimezone)
if (time == null)
return null;
LocalDateTime localDateTime = parse(time, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
return localDateTime.atZone(ZoneOffset.UTC).withZoneSameInstant(ZoneId.of(desTimezone)).toLocalDateTime();
public static LocalDateTime parse(String time, String pattern)
if (StringUtils.isAnyBlank(time, pattern))
return null;
LocalDateTime localDateTime;
try
localDateTime = LocalDateTime.parse(time, DateTimeFormatter.ofPattern(pattern));
catch (Exception ex)
LocalDate localDate = parseLocalDate(time, pattern);
localDateTime = Objects.isNull(localDate) ? null : localDate.atStartOfDay();
return localDateTime;
private static LocalDate parseLocalDate(String str, String pattern)
if (StringUtils.isAnyBlank(str, pattern))
return null;
LocalDate localDate = null;
try
localDate = LocalDate.parse(str, DateTimeFormatter.ofPattern(pattern));
catch (Exception ex)
return localDate;
以上是关于UTC0时间和太平洋时间转换的主要内容,如果未能解决你的问题,请参考以下文章
如何使用python将excel文件中的时间戳列表从UTC转换为旧金山时间(太平洋时间)? [复制]
Swift DateFormatter 错误地转换字符串日期/时间
将'2017年11月11日太平洋标准时间上午5:19:38'转换为YYYY-MM-DD HH:MM [:ss [.uuuuuu]] [TZ]格式