如果 JS 日期是 UTC,Luxon 减去一天

Luxon substracting one day if JS date is UTC

我通过以下方式与 Luxon 约会:

const date = DateTime.utc(2000, 6, 23).toFormat('yyyy-MM-dd')

然后我尝试通过这样做将其转换为 JS 日期:

const jsDate = new Date(date)

最后,我将它转换回 'yyyy-MM-dd' 格式

const parsedDate = DateTime.fromJSDate(jsDate).toFormat('yyyy-MM-dd')

但它没有给我 2000-06-23,而是给我 2000-06-22。这是 Luxon 上的错误还是我需要做些什么才能获得正确的日期?

I try to convert it to a JS date by doing const jsDate = new Date(date)

呃,为什么不 date.toJSDate()

Instead of giving me 2000-06-23, DateTime.fromJSDate(jsDate).toFormat('yyyy-MM-dd') gives me 2000-06-22. Is this a bug on Luxon or I need to do something to get the correct date?

根据its docs, fromJSDate defaults to creating a DateTime instance in the local (system) timezone。如果您期望另一个 UTC 日期,您需要指定:

DateTime.fromJSDate(jsDate, {zone: 'utc'}).toFormat('yyyy-MM-dd')