从特定区域获取本地时区

Get Local timezone from specific zone

我目前使用 Luxon,代码如下:

this.now = DateTime.local();

但是,我想从另一个时区获取当前时间,例如 'Europe/London'。这在 Luxon 有可能吗?

像这样:

this.now = DateTime.local('Europe/London');

有人知道怎么做吗?

是的,您可以使用 setZone 方法:

"Set" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.

或者您可以使用 fromObject 指定 zone 属性,正如 snickersnack 在评论中所建议的那样。

这是一个活生生的例子:

const DateTime = luxon.DateTime;
const now = DateTime.local().setZone('Europe/London');
console.log( now.toLocaleString(DateTime.DATETIME_FULL) );

// Using fromObject as suggested by snickersnack
const nowObj = DateTime.fromObject({ zone: 'Europe/London' });
console.log( nowObj.toLocaleString(DateTime.DATETIME_FULL) );
<script src="https://moment.github.io/luxon/global/luxon.min.js"></script>

另请参阅手册的 Creating DateTimes in a zone 部分。