date-fns:parseISO(string)和新的Date(string)之间的区别?

时间:2019-07-01 16:00:30

标签: date-fns

我正在试用date-fns v2。

我在跑步时遇到一些错误:

parseISO("Apr 9, 2020, 12:00:00 am");

parseISO("Apr 9, 2020, 12:00:00 am", "MMM M, YYYY, hh:mm:ss aaaa");

但这很好用:

new Date("Apr 9, 2020, 12:00:00 am");

我试图了解何时应该使用一个或另一个,但是找不到parseISO()的文档。

2 个答案:

答案 0 :(得分:1)

pp <- predictInterval(merMod = mod, newdata = ndata, #<= any school chosen type = "linear.prediction", which = "fixed") #remove random effects pp <- sweep(pp, 1, predict(mod, newdata = ndata, random.only = TRUE), "-") pp <- 1/(1+exp(-pp)) here的文档。基本上,parseISO尝试解析包含parseISO之类的ISO格式日期字符串的字符串。

您要解析的是国际化字符串。即'2019-09-25T14:34:32.999Z'是美国语言环境格式的日期字符串。

'Apr 9, 2020, 12:00:00 am'之所以有效,是因为它在您的环境(浏览器或节点)的语言环境中进行中继,您传递给它的字符串与语言环境的格式匹配。如果您将传递法语区域设置格式的日期字符串,则很可能会失败。

要解析国际化字符串,您还可以查看parse,它也将采用传递日期字符串的格式。

如果您通过网络传递日期(例如HTTP rest API或数据库),则应该已经确定传递/存储日期时间的格式。通常,它可以是ISO格式的日期字符串,自1970年以来的UTC毫秒数或任何其他适合您的情况的值。然后,根据您的“电线”或“商店”的规范,您将执行new Date()parseISO

如果您使用一些基于浏览器的Web应用程序,则应考虑用户的本地身份。然后,由于您要照顾用户的语言环境和/或时区,因此解析可能变得很麻烦。

答案 1 :(得分:0)

Apr 9, 2020, 12:00:00 amISO 8601 format 预期的 parseDate 不匹配。这是一个正确的 ISO 8601 日期字符串示例:2020-11-20T10:36:01.516Z

请注意,MDN 强烈反对使用 new Date(dateString)Date.parse(dateString)

<块引用>

注意强烈不鼓励使用 Date 构造函数(和 Date.parse(),其工作方式相同)解析日期字符串,因为浏览器差异和不一致。

(source)