我正在使用momentjs但是在尝试将UTC时间转换为由name指定的特定时区(当前用户不一定是本地时间)时遇到问题'America/New_York'.这个问题类似,但没有真正帮助.
我的思考过程是使用服务器收到的日期创建一个utc时刻obj,然后将该UTC时间格式化为特定时区以供显示.我现在正在接近这个的一小部分:
var cutoffString = '20170421 16:30:00'; // in utc
var utcCutoff = moment.tz(cutoffString, 'YYYYMMDD HH:mm:ss', '+00:00');
var displayCutoff =
moment.tz(utcCutoff.format('YYYYMMDD HH:mm:ss'), 'YYYYMMDD HH:mm:ss', 'America/New_York');
console.log('utcCutoff:', utcCutoff.format('YYYYMMDD hh:mm:ssa Z')); // => utcCutoff: 20170421 04:30:00pm +00:00
console.log('displayCutoff:', displayCutoff.format('YYYYMMDD hh:mm:ssa Z')); // => displayCutoff: 20170421 04:30:00pm +00:00
Run Code Online (Sandbox Code Playgroud)
我的假设是displayCutoff将是'America/New_York'时间显示的utcCutoff时间.但它目前与utcCutoff对象同时显示.我还应该提一下,使用后.utc()代替.tz并试图操纵时区.local()也没有用.
任何帮助/指导将不胜感激.