如何在JavaScript中将太平洋时间字符串转换为用户本地时间?
太平洋时间转本地时区时间实现方案
首先明确:太平洋时间分为 PST(太平洋标准时间,UTC-8)和 PDT(太平洋夏令时,UTC-7),转换时需要先把太平洋时间字符串解析为UTC时间,再根据用户本地时区偏移转换为本地时间。
示例待转换时间
10/14/2021 8:04:00 PM 太平洋时间
JavaScript 实现(浏览器端自动获取用户本地时区)
// 解析太平洋时间字符串为本地时间 function parsePacificTimeToLocal(pacTimeStr) { // 补充太平洋时区标识,自动适配夏令时规则 const pacDate = new Date(`${pacTimeStr} GMT-0800 (America/Los_Angeles)`); // 自动使用用户当前系统时区格式化输出 return pacDate.toLocaleString(undefined, { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: true }); } // 测试示例 const testPacTime = "10/14/2021 8:04:00 PM"; console.log(parsePacificTimeToLocal(testPacTime));
Python 实现
from datetime import datetime import pytz def pacific_to_local(pac_time_str): # 定义太平洋时区对象,自动处理夏令时切换 pac_tz = pytz.timezone('America/Los_Angeles') # 解析太平洋时间字符串 pac_time = pac_tz.localize(datetime.strptime(pac_time_str, '%m/%d/%Y %I:%M:%S %p')) # 转换为运行环境的本地时区 local_time = pac_time.astimezone() return local_time.strftime('%m/%d/%Y %I:%M:%S %p %Z') # 测试示例 test_pac_time = "10/14/2021 8:04:00 PM" print(pacific_to_local(test_pac_time))
转换结果参考(以北京时间为例)
示例太平洋时间 10/14/2021 8:04:00 PM 转换为北京时间为:10/15/2021 11:04:00 AM(10月太平洋处于夏令时,和北京时间时差为15小时)
内容的提问来源于stack exchange,提问作者Mohsin Ali
相关产品推荐
相关产品推荐

