我想在不考虑Settings.defaultZone的情况下生成Luxon日期。

就我而言,我从第三方日期选择器组件中获取了日期字符串。格式如下:
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日。

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

最佳答案

我真的很亲密:

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

绝招。

关于javascript - 卢森堡:如何忽略特定日期的时区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56440097/

10-12 12:29
查看更多