我想生成一个卢森堡日期而不考虑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日。
我想有一个简单的方法可以做到这一点,只有我找不到它。
答案 0 :(得分:2)
我真的很亲密:
const formattedValue = DateTime.fromISO(value, {zone: 'utc'});
做到了。