iso815中文版_国际标准日期时间格式

2022-11-17 14:48:46 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

严格的来说,这个标题可能不太正确,因为我首先度娘了一下,ISO8601时间格式标准应该类似于:2016-01-18T23:41:00-08:00,而UTC时间格式差不多类似

在做一个项目用到一个国外的API,返回的一个时间格式是:2016-01-18T23:41:00

我有几个问题想问一下:

1.因为没有搜索到具体资料,返回的这个2016-01-18T23:41:00 是UTC时间和是ISO-8601时间格式?

2.如上,如果这算是ISO时间格式,因为没有指定时区,那么像“2016-01-18T23:41:00”这种情况,默认是 00:00吗?(如果是UTC时间,也是类似的问题,没有指定时区/时差默认的是什么,如果有)

回复内容:

严格的来说,这个标题可能不太正确,因为我首先度娘了一下,ISO8601时间格式标准应该类似于:2016-01-18T23:41:00-08:00,而UTC时间格式差不多类似

在做一个项目用到一个国外的API,返回的一个时间格式是:2016-01-18T23:41:00

我有几个问题想问一下:

1.因为没有搜索到具体资料,返回的这个2016-01-18T23:41:00 是UTC时间和是ISO-8601时间格式?

2.如上,如果这算是ISO时间格式,因为没有指定时区,那么像“2016-01-18T23:41:00”这种情况,默认是 00:00吗?(如果是UTC时间,也是类似的问题,没有指定时区/时差默认的是什么,如果有)

UTC 是时间标准;ISO-8601 是表示时间的一种标准格式,多数编程语言都支持。

2016-01-18T23:41:00 是符合 ISO-8601 标准的时间表示。

2016-01-18T23:41:00 里面的 T 表示 UTC,所以这个字符串解析后就表示 UTC 时间的 2016-01-18 23:41:00,那么再转换为北京当地时间展示(比如,在 JavaScript 里面 new Date(‘2016-01-18T23:41:00’).toLocaleString())时就会加上 8 小时的偏移,变成:2016-01-19 7:41:00。

更多这方面的东西,可以参考我之前写的文章:http://segmentfault.com/a/1190000004292140

首先你对这两个概念就有混淆, UTC 是时间,并不是时间的格式,和 ISO-8601 不能进行比较。

之后回答你问题,

IOS-8601 不只有一个格式,而是包含很多格式,其中就有没有时区的为 0时区。当然,其他的格式中还有没有时间只有日期的。

附一份 IOS-8601 官方规范

http://www.iso.org/iso/home/standards/iso8601.htm

维基百科:

Time zones in ISO 8601 are represented as local time (with the location unspecified), as UTC, or as an offset from UTC.

If no UTC relation information is given with a time representation, the time is assumed to be in local time.

所以如果不指定时区,则表示的是本地时间。相当于localtime得到的时间。没指定时区不代表UTC时间,UTC时间必须最后写明Z或者用 00之类的偏移。

那个T的意义仅仅是分隔符,没有别的意思。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234183.html原文链接:https://javaforall.cn

0 人点赞