如何将UTC秒数转换为日期,100分,在线等

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将UTC秒数转换为日期,100分,在线等相关的知识,希望对你有一定的参考价值。

参考技术A =CONCATENATE(ROUNDDOWN(B2/3600,0),":",ROUNDDOWN(MOD(B2,3600)/60,0),":",MOD(B2,60))

记得在将公式中的B2替换成你自己的对应数字!

如何将日期时间从 ISO 格式转换为 UTC 时区?

【中文标题】如何将日期时间从 ISO 格式转换为 UTC 时区?【英文标题】:How to convert date time from ISO Format to UTC time zone? 【发布时间】:2018-08-31 18:11:54 【问题描述】:

我正在使用moment.js,我想将 ISO 格式日期时间转换为 UTC 时区。

我可以从本地时间转换为 UTC+ISO 格式,但我无法将 ISO 格式转换为 UTC 时区。

输入:

2018-03-22T00:00:00Z

预期输出:

日期应为 UTC 时区。如果我计算它应该是:

22018-03-21T18:30:00Z
    首先我想转换成 ISO,然后转换成 UTC**。

无法将本地日期时间转换为 ISO 然后 UTC

我们可以转换成字符串,但是从ISO格式可以转换吗?

Fox 示例:我想将ISODATE(2018-03-22T00:00:00Z) 转换为 UTC 时区。

function toISO(dt) 
  return moment(dt).format("YYYY-MM-DDTHH:mm:ss") + "Z";

var date = new Date();
var isoDate= toISO(date)

我们可以直接转换

function toISOWithUtc(dt) 
      return moment(dt).utc().format("YYYY-MM-DDTHH:mm:ss") + "Z";

var date = new Date();
toISO(date)

【问题讨论】:

请包括每个输入的输入和预期输出。 @Igor 转换为 UTC.. 2018-03-22T00:00:00Z 让我改写一下:edit 你的问题,包括输入和相应的预期输出。如果您真的想对那些查看问题的人有所帮助,就好像您正在编写单元测试一样。 如何 2018-03-22T00:00:00Z 不在“日期应在 UTC 时区”中?再次,像编写单元测试一样编写它。您正在检查的类型是什么,它的值应该是什么?目前还不清楚您实际要求/需要什么。 2018-03-22T00:00:00Z 不是当地时间,末尾的Z 表示时区是UTC。 【参考方案1】:

2018-03-22T00:00:00Z2018-03-21T18:30:00Z已经采用 UTC

最后注意到Z了吗? This means that the date is in UTC。它不是一个硬编码的字母,您可以只附加到末尾 - 它具有特定含义,它表明日期/时间采用 UTC。

如果您想将该 UTC 日期转换为另一个时区(我猜这就是您想要的),您可以使用 moment.tz:

// convert UTC 2018-03-22T00:00:00Z to Asia/Kolkata timezone
moment.tz('2018-03-22T00:00:00Z','Asia/Kolkata')

只需将时区名称更改为您要转换的名称即可。

调用format() 将为您提供 ISO8601 格式的转换日期/时间:

moment.tz('2018-03-22T00:00:00Z','Asia/Kolkata').format() // 2018-03-22T05:30:00+05:30

请注意,偏移量已从 Z 更改为 +05:30。这意味着上述日期/时间比 UTC 提前 5 小时 30 分钟,这是将2018-03-22T00:00:00Z 转换为加尔各答的时区的结果。

注意:我认为您误解了这里的概念。

UTC is a time standard。它定义了诸如全球当前日期/时间之类的东西,它使用原子钟来确保地球上的每个人都是同步的,以及timezones are all based on offsets from UTC。

ISO8601 is a standard for exchanging date/time-related data。它定义了格式(日期的文本表示)。日期/时间可以采用 ISO 格式,无论是否采用 UTC

这就是为什么“从 UTC 转换为 ISO”(反之亦然)毫无意义。

【讨论】:

有两种转换方式.. function toISO(dt) return moment(dt).format("YYYY-MM-DDTHH:mm:ss") + "Z"; function toISOWithUtc(dt) return moment(dt).utc().format("YYYY-MM-DDTHH:mm:ss") + "Z"; 第一个 toISO 只转换成 ISO 格式而不是 UTC。第二个转换为 UTC 和 ISO 1- 如果您在末尾添加Z,则表示日期为 UTC - 请查看上面答案中的链接。 2- UTC 是定义诸如“当前时间”之类的时间标准,并被时区用来定义其在世界各地的当地时间,而 ISO8601 定义格式(日期的文本表示)。将 UTC 转换为 ISO 完全没有意义:“YYYY-MM-DDTHH:mm:ss”是一种 ISO 格式,无论是否为 UTC。 是的,你是对的。我已经以错误的方式转换为 UTC。感谢 pist

以上是关于如何将UTC秒数转换为日期,100分,在线等的主要内容,如果未能解决你的问题,请参考以下文章

在linux bash中将ISO日期转换为纪元以来的秒数

如何在 Pyspark 中将秒数从 Epoch 时间转换为 UTC 时间?

使用 strftime 将 python 日期时间转换为纪元

我要面试了,给些java面试基础问题,在线等

如何转换为 UTC

如何将日期正确转换为 UTC,然后再转换回来?