将 UTC 时间转换为提供的时区,不得依赖于浏览器时区
Convert UTC time to provided Timezone, must not depend on browser timezone
这种问题以前有人问过,但我遇到的情况有点棘手。
我有一个 UTC 日期时间。无论我们通过什么,我都想将其转换为特定时区。
目前我正在使用时刻时区库。
它会发生什么,它会考虑浏览器时区中提供的时间,然后尝试将其转换为提供的时区。
我想在 UTC 中考虑提供的时间。
js代码:
var datetime = '2015/04/10 15:35:00';
datetime = moment(datetime).format('YYYY-MM-DD HH:mm:ss');
datetime = moment.utc(datetime);
return moment(datetime).tz(siteTimeZone).format('YYYY-MM-DD HH:mm:ss');
我也尝试过直接应用 utc,例如:
var datetime = '2015/04/10 15:35:00';
datetime = moment.utc(datetime).format('YYYY-MM-DD HH:mm:ss');
return moment(datetime).tz(siteTimeZone).format('YYYY-MM-DD HH:mm:ss');
但其中 none 个按预期工作。我可能不清楚时刻时区是如何工作的。
请帮忙。
谢谢!
将您的字符串放入 Date 对象,然后使用 datetime.toUTCString()
从中获取 UTC 字符串,最后设置时区和格式,如下所示:
测试代码如下:
var datetime = new Date('2015/04/10 15:35:00');
datetime = datetime.toUTCString();
datetime = moment(new Date(datetime)).tz(siteTimeZone).format('YYYY-MM-DD HH:mm:ss');
在转换为时区之前,只需解析为 utc。
var datetime = '2015/04/10 15:35:00';
return moment.utc(datetime,'YYYY/MM/DD HH:mm:ss')
.tz(siteTimeZone)
.format('YYYY-MM-DD HH:mm:ss');
另请注意,我在解析时提供了一个格式字符串,它与传入的值的格式相匹配。这是一个很好的做法,可以防止 moment 在控制台上生成警告。
这种问题以前有人问过,但我遇到的情况有点棘手。 我有一个 UTC 日期时间。无论我们通过什么,我都想将其转换为特定时区。 目前我正在使用时刻时区库。 它会发生什么,它会考虑浏览器时区中提供的时间,然后尝试将其转换为提供的时区。 我想在 UTC 中考虑提供的时间。
js代码:
var datetime = '2015/04/10 15:35:00';
datetime = moment(datetime).format('YYYY-MM-DD HH:mm:ss');
datetime = moment.utc(datetime);
return moment(datetime).tz(siteTimeZone).format('YYYY-MM-DD HH:mm:ss');
我也尝试过直接应用 utc,例如:
var datetime = '2015/04/10 15:35:00';
datetime = moment.utc(datetime).format('YYYY-MM-DD HH:mm:ss');
return moment(datetime).tz(siteTimeZone).format('YYYY-MM-DD HH:mm:ss');
但其中 none 个按预期工作。我可能不清楚时刻时区是如何工作的。
请帮忙。
谢谢!
将您的字符串放入 Date 对象,然后使用 datetime.toUTCString()
从中获取 UTC 字符串,最后设置时区和格式,如下所示:
测试代码如下:
var datetime = new Date('2015/04/10 15:35:00');
datetime = datetime.toUTCString();
datetime = moment(new Date(datetime)).tz(siteTimeZone).format('YYYY-MM-DD HH:mm:ss');
在转换为时区之前,只需解析为 utc。
var datetime = '2015/04/10 15:35:00';
return moment.utc(datetime,'YYYY/MM/DD HH:mm:ss')
.tz(siteTimeZone)
.format('YYYY-MM-DD HH:mm:ss');
另请注意,我在解析时提供了一个格式字符串,它与传入的值的格式相匹配。这是一个很好的做法,可以防止 moment 在控制台上生成警告。