- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Luxon.js 来处理日期,并且我正在尝试解析来自服务器的一些 ISO 字符串。它有这样的格式
2019-04-04T12:12:07+03:00
我正在使用 Luxon 的方法 - fromISO 应该解析这个 str
DateTime.fromISO("2019-04-04T12:12:07+03:00", "dd LLLL yyyy")
我预计会在输出中看到2019年4月4日 - 15:12,但它返回2019年4月4日 - 12:12不知何故,我不明白为什么会发生?
我做错了什么吗?因为当我尝试使用此 ISO 字符串 2019-04-04T12:12:07.756Z它就像一个魅力。但我不明白为什么前一个不起作用,我应该做什么才能使它起作用?
我将不胜感激任何帮助!
附注老实说,我对 ISO 时间的了解有一些差距,如果这个问题很愚蠢,我很抱歉。
最佳答案
2019-04-04T12:12:07+03:00
表示“在偏移量为 +3 的区域中,它是 12:12”。它并不是告诉 Luxon 添加 3 小时;而是告诉 Luxon 增加 3 小时。它提供了表达时间的上下文。例如,因为偏移量为 +3 的区域的本地时间比 UTC 早 3 小时(这就是它的意思),所以在英格兰它是 9:12。重点是,这是地球上的特定时间,+3 只是告诉您使用什么规则将该时间转换为字符串。
Luxon 吸收所有这些信息并计算出现在的实际时间,在其时间概念中,该时间是自 1970 年初(UTC)以来所经过的毫秒数。然后它可以将其转换为任何区域的本地时间。当然,如果您的计算机位于偏移量为 +3 的区域,则本地时间为 12:12:
-> TZ=Europe/Moscow node
> DateTime = require("luxon").DateTime
[Function: DateTime]
> var dt = DateTime.fromISO("2019-04-04T12:12:07+03:00")
undefined
> dt.toLocaleString(DateTime.TIME_24_SIMPLE)
'12:12'
我的计算机实际上位于美国东海岸,因此我看到的本地时间非常不同:
-> node
> DateTime = require("luxon").DateTime
[Function: DateTime]
> var dt = DateTime.fromISO("2019-04-04T12:12:07+03:00")
undefined
> dt.toLocaleString(DateTime.TIME_24_SIMPLE)
'05:12'
这是因为我的偏移量是-4,这意味着这里的本地时间比原始字符串中的+3早7个小时。
当我的计算机位于任何区域时,我当然可以告诉 Luxon 在任何其他区域中表达日期:
> dt.toUTC().toLocaleString(DateTime.TIME_24_SIMPLE)
'09:12'
> dt.setZone("Europe/Moscow").toLocaleString(DateTime.TIME_24_SIMPLE)
'12:12'
> dt.setZone("Asia/Tokyo").toLocaleString(DateTime.TIME_24_SIMPLE)
'18:12'
关于javascript - Luxon.js ISO 8601 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55515937/
我想使用 luxon 执行从毫秒到分钟的转换。例如。如果我输入 1000 ,则输出应为 1m 0s。我正在尝试 Duration.fromMillis(1000).as('minutes') 但作为返
我正在为 Angular Material 编写日期适配器,如果提供的对象是 luxon DateTime,则需要一个返回 bool 值的函数。 像这样(从那一刻起): isDateInstance(
luxon是否支持显示相对于给定时间的功能? 时刻具有“日历时间”功能: https://momentjs.com/docs/#/displaying/calendar-time/ moment().
嗨,我想以本地化的人类可读方式(例如 9 天,3 小时)表达一个 luxon 间隔。 从现在开始,我已经做到了这一点。使用此代码: DateTime.fromISO(value).toRelative
我想在不考虑 Settings.defaultZone 的情况下生成 Luxon 日期。 在我的例子中,我从第三方日期选择器组件获得了一个日期字符串。格式如下: 2019-06-28T00:00:00
我正在从 Momentjs 迁移到 Luxon。我允许用户选择任务将花费的小时数。当我们保存这个值时,我希望它正常化。因此,如果一项任务需要 90 个小时,我更愿意存储 3 天 18 个小时。我存储了
我将 UTC 日期存储在一个集合中,如下所示: "orderBeforeStartTime" : ISODate("2021-03-20T14:00:00.000Z"), "orderBeforeEn
Moment 可以选择根据周数(0 到 6)获取日期名称。我看到 luxon 有星期几,数字从 1 到 7(星期一是 1,星期日是 7)https://moment.github.io/luxon/#
我正在使用 Luxon 来显示何时处理订单。如果他们在美国东部标准时间上午 9 点至下午 5 点的营业时间之后下订单,我想告诉他们他们的订单将在美国东部标准时间的第二天下午 2:00 准备好。
我正在寻找一种方法来使用 Luxon 从周数获取日期范围,以替换我的“时刻”代码。今天我正在使用这个代码: m = moment(yearNumber + "-W" + weekNumber); da
我正在尝试使用 js 类型的 luxon 时间对象。我不确定这是否如 sort 所期望的那样正确 -1,0,1 const results = objectGroupedByYearMonth[ye
使用 moment.js,您可以通过以下方式格式化日期: const date = moment("2010-10-22T21:38:00"); const data = date.format("L
您可以立即调用: momentLocaleData.firstDayOfWeek() 是否有可能在 Luxon 中获得相同的功能? 最佳答案 我担心,在最新版本( 1.3.3 )中,这是不可能的,因为
具有短时区缩写的时刻时区结果,例如 moment.tz([2012, 0], 'America/New_York').format('z'); // EST moment.tz([2012, 5
我有来自 GMT 时区数据库的时间戳。如何根据用户时区显示时间?目前我的时间是这样的 return luxon.DateTime.fromSQL(created_at).setZone('local'
如何从 luxon dateTime 对象获取时间戳? 例如? const { DateTime } = require("luxon"); date = DateTime.now().setZone
我正在使用 Material-UI 选择器库构建 DatePicker React,并使用 Luxon 作为适配器。 当我更改日历日期时,我得到一个带有 DateTime 的对象,如下所示: 我使用的
我正在使用 luxon.js 并想检查用户的年龄是否超过 21 岁。 代码,我正在使用它 const isTooYoung = date => DateTime.fromFormat(date,
我从数据库中获取了时间戳,我需要在用户时区中显示其时间。 例如:巴西 16:42,法国 21:42。 这是一次聊天,因此消息需要以每个用户的时区显示。 我有luxon在项目中,但在这种情况下我无法使用
我有两个 luxon 物体, let startDate = DateTime.fromISO(startDate) let someDate = DateTime.fromISO(someDate)
我是一名优秀的程序员,十分优秀!