Преобразовать строку даты в дату с часовым поясом, используя часовой пояс момента js - PullRequest
0 голосов
/ 28 сентября 2018

Мне нужно преобразовать строку даты в 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

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Вы можете сделать что-то вроде этого:

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, подойдет.

0 голосов
/ 28 сентября 2018

Вы можете попробовать это, я думаю, это будет работать

сначала получите смещение часового пояса timeZoneId ваш часовой пояс.

const offset =  moment['tz'](moment(new Date()), timeZoneId).utcOffset() * 60000;

во-вторых создайте новую дату из вашей даты и вашего смещения

console.log(new Date(new Date(yourDateString).getTime() + offset))

и yes yourDateString - ваша строка даты, лучше работает для obj даты, но w / e

...