Javascript 给定一个Date对象,我如何获得这个原始日期的另一个Date对象(或其时间戳),但在特定时区的上午9:00?
我有一个日期对象,比如:Javascript 给定一个Date对象,我如何获得这个原始日期的另一个Date对象(或其时间戳),但在特定时区的上午9:00?,javascript,timezone,Javascript,Timezone,我有一个日期对象,比如: const d = new Date('2014-12-01T12:00:00Z'); const timezoneName = 'America/New_York'; 我有一个时区名称,比如说: const d = new Date('2014-12-01T12:00:00Z'); const timezoneName = 'America/New_York'; 创建另一个日期对象(或仅获取其UTC时间戳)的优雅方式是什么?该对象的日期相同,但在时区的上午9:
const d = new Date('2014-12-01T12:00:00Z');
const timezoneName = 'America/New_York';
我有一个时区名称,比如说:
const d = new Date('2014-12-01T12:00:00Z');
const timezoneName = 'America/New_York';
创建另一个日期对象(或仅获取其UTC时间戳)的优雅方式是什么?该对象的日期相同,但在时区的上午9:00(按timezoneName)
我可以使用toLocaleString
将d
转换为字符串,然后处理该字符串,然后将其转换回最新版本,但我认为这不是一个非常优雅的解决方案
我不介意使用moment.js
提前谢谢:)好吧,我想这一款适合我:
const moment = require('moment-timezone');
const d = new Date('2014-12-01T12:00:00Z');
moment(d).tz(timezoneName).set({hour: 9, minute: 0, second: 0, millisecond: 0}).valueOf()
这回答了你的问题吗@RyanWilson谢谢,但没有。正如我在问题中提到的,我对字符串不感兴趣,但对Date对象或其时区不感兴趣,我不想将其转换为字符串作为过程的一部分。如果您通读该帖子上的答案,有一些可以利用
时刻
和其他选项。非常感谢!但所有这些都会回答或操作字符串或返回字符串。但我想我刚刚找到了一个好的解决办法。我感谢你的帮助moment(new Date()).tz(timezoneName)
可以是moment.tz(timezoneName)
(或者moment.tz(input,timezoneName)
,以适合您的原始代码)。但同时,对于新的项目,你们应该优先考虑现在。“时刻”处于传统模式。(不,你还不能用Date
来解决这个问题。最终,你会解决这个问题的。)