3

使用Luxon JS ,我一直在尝试使用本机toISO函数将日期时间格式化为以某种格式输出:

这就是我得到的:

"2018-08-25T09:00:40.000-04:00"

这就是我想要的:

"2018-08-25T13:00:40.000Z"

我知道它们在unix时间方面都是等价的,除了格式不同之外,它们的含义相同,我只想能够输出第二个字符串而不是第一个字符串。我浏览了 Luxon 文档,但找不到任何可以满足我需要的参数/选项。

4

2 回答 2

3

正如评论中已经说明的其他内容,您可以使用两种方法:

  • 使用以下命令将 Luxon DateTime 转换为 UTC toUTC

    "Set" the DateTime's zone to UTC. Returns a newly-constructed DateTime.
    
  • JS Date 的使用toISOString()方法。

您可以使用toJSDate()从 luxon DateTime 获取 Date 对象:

Returns a JavaScript Date equivalent to this DateTime.

例子:

const DateTime = luxon.DateTime;
const dt = DateTime.now();
console.log(dt.toISO())
console.log(dt.toUTC().toISO())
console.log(dt.toJSDate().toISOString())
console.log(new Date().toISOString())
<script src="https://cdn.jsdelivr.net/npm/luxon@1.26.0/build/global/luxon.js"></script>

于 2021-05-06T07:44:44.973 回答
0

从文档中我看到,.fromISODateTime可以在 ISO 日期字符串(在您的示例中为“2018-08-25T09:00:40.000-04:00”)之后添加一个选项对象。在此对象中指定zone: utc如下:

const DateTime = luxon.DateTime;

const stringDate = "2018-08-25T09:00:40.000-04:00";

const dt = DateTime.fromISO(stringDate, {zone: 'utc'});

console.log('This is your date format', dt.toISO())
<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/1.26.0/luxon.min.js"></script>

于 2021-05-06T15:24:44.510 回答