卢森堡:如何忽略特定日期的时区

时间:2019-06-04 08:28:34

标签: javascript date datetime timezone luxon

我想生成一个卢森堡日期而不考虑Settings.defaultZone

就我而言,我从第三方日期选择器组件中获取了日期字符串。格式如下:

2019-06-28T00:00:00

但是,现在,我们在所有应用程序中都使用了Luxon来管理日期,因此我需要解析该日期以生成Luxon的日期。

因此,我将字符串解析如下:

import { DateTime } from 'luxon';
function parseDate(dateString) { // Let's say dateString === 2019-06-28T00:00:00

  const formattedDate = DateTime.fromISO(value); // 2019-06-27T23:00:00.000Z
 ...
}

如您所见,formattedDate受当前时区的影响。在这种特定情况下,在应用程序引导程序中,我们将常规时区设置为GMT + 1。

因此,格式化日期设置为23:00的6月27日,而不是用户在日期选择器中选择的00:00的6月28日。全局时区设置随着时间调整。

通常这很好,但是在这种特定情况下(用户正在选择其身份证的到期日期),我们不需要也不想考虑时区。我希望将日期设置为UTC时区的6月28日。

我尝试过:

const formattedValue = DateTime.fromISO(value).setZone('utc');

但是,这不会更改日期并将其设置为6月27日。

我想有一个简单的方法可以做到这一点,只有我找不到它。

1 个答案:

答案 0 :(得分:2)

我真的很亲密:

const formattedValue = DateTime.fromISO(value, {zone: 'utc'});

做到了。