我需要将日期字符串转换为PDT(太平洋夏令时间),并且还原日期必须显示在本地时间。
我尝试过
console.log(moment.tz("16:23:42 Sep 27, 2018 PDT", 'HH:mm:ss MMM DD, YYYY PDT',"PDT").format());
当我运行上面的代码时,它会显示
2018-09-27T16:23:42Z
不是当地时间。等效的本地时间必须不同。如何获取指定日期字符串的本地时间。
换句话说,我的意思是这样说https://forums.asp.net/t/1552114.aspx?Convert+Datetime+String+from+PDT+to+IST+local+time+datetime+string
答案 0 :(得分:1)
您可以执行以下操作:
var desiredFormat = "HH:mm:ss MMM DD, YYYY";
var timeToBeConverted = moment("16:23:42 Sep 27, 2018", desiredFormat);
var timeZone = "America/Los_Angeles";
console.log(timeToBeConverted.tz(timeZone).format(desiredFormat) + " PDT");
您提供的时区不能为“ PDT”。如果您在控制台中使用moment.tz.names()
,则会获得有效时区名称的列表。在上面的示例中,我使用了“ America / Los_Angeles”,但是任何观察PDT的区域都可以。
答案 1 :(得分:0)
您可以尝试一下,我认为它会起作用
首先获取时区偏移量timeZoneId
是您的时区。
const offset = moment['tz'](moment(new Date()), timeZoneId).utcOffset() * 60000;
第二次根据您的日期和偏移量创建新日期
console.log(new Date(new Date(yourDateString).getTime() + offset))
是的,yourDateString
是您的日期字符串,对日期obj更好,但是带