【问题标题】:Convert string to a epoch time in Excel在 Excel 中将字符串转换为纪元时间
【发布时间】:2014-02-28 16:33:20
【问题描述】:

我正在尝试在 MS Excel 2013 中将字符串转换为以下格式:20130817T140000Z(2013 年 8 月 17 日 14:00)到 epoch time(自 1970 年以来的秒数)。

尝试了单元格格式,但它不适用于 TZ 或一般格式。

【问题讨论】:

    标签: excel datetime epoch


    【解决方案1】:

    这会将您的日期转换为 Excel 可以理解的日期,如果您在单元格 A1 中有日期,则将其转换为纪元时间

    =(DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2)) + TIME(MID(A1,10,2),MID(A1,12,2),MID(A1,14,2))-25569)*86400)
    

    【讨论】:

      【解决方案2】:

      试试这个:

      A1=20130817T140000Z
      A2=DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2))
      A3=(DATEDIF("01/01/1970 00:00:00",A2,"D")+TIME(MID(A1,10,2),MID(A1,12,2),MID(A1,14,2)))*24*60*60
      

      A1 是您输入的文本日期,A2 是格式化日期,A3 是您的日期和纪元开始日期之间的秒差。

      有用link

      更新:基于@user2140261 的建议。

      【讨论】:

      • 我不认为这是正确的,我认为 DateDif 搞砸了你的计算,参考我的答案,我通过减去 1/1/1970 (25569) 手动得到差异,然后乘以秒 86400,虽然您也是按秒 (24*60*60 = 86400) 执行的,但我认为您的 DateDif 功能已关闭,已知此功能会弄乱日期,您可以研究一下,这就是确切原因excel不支持,没有帮助。
      • 其实不是DateDif函数,是因为你在使用DateDif的时候丢掉了时间值,改试试A2=DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2))A3=(DATEDIF("01/01/1970 00:00:00",A2,"D")+TIME(MID(A1,10,2),MID(A1,12,2),MID(A1,14,2)))*86400
      【解决方案3】:

      假设要转换的字符串在单元格 B1 中,您可以在单元格上使用以下自定义格式来获取日期/时间。

      =DATE(MID(B1,1,4),MID(B1,5,2),MID(B1,7,2))+TIME(MID(B1,10,2),MID(B1,12,2),MID(B1,14,2))
      

      自定义格式为:

      dd/mm/yyyy hh:mm:ss
      

      【讨论】:

      • @Fearghal 您确实意识到这甚至不能回答您的问题,对吗?这将获取 Excel 时间,或 1900 年 1 月 1 日的数字,您要求 Epoch,时间为 1970 年 1 月 1 日。
      • 是的,但我选择了日期时间 - 我可以自己进行转换。如果您也想发布纪元时间解决方案,那就太好了。
      • 这个问题的基础是字符串到日期时间值的转换。这解决了这个问题。我同意它不会转换为 Epoch,但它提供了一个起点。
      【解决方案4】:

      这将为您提供精确到分钟的日期。如有必要,您可以按照该模式获得秒数。

      =DATE(VALUE(LEFT(A1,4)),VALUE(RIGHT(LEFT(A1,6),2)),VALUE(RIGHT(LEFT(A1,8),2)))+VALUE(RIGHT(LEFT(A1,11),2))/24+VALUE(RIGHT(LEFT(A1,13),2))/(24*60)
      

      【讨论】:

      • 这非常复杂,只获取 Excel 时间,而不是纪元时间。另外,OP 要求的是秒精度,而不是分钟。
      【解决方案5】:

      您可以使用此版本将您的字符串转换为纪元时间

      =(TEXT(LEFT(A1,8)&MID(A1,10,6),"0000-00-00 00\:00\:00")-25569)*86400

      这使用TEXT 函数将您的字符串转换为看起来像有效日期/时间的字符串 - 当您减去 25569 (1/1/1970) 时,该字符串将强制转换为有效日期/时间和结果可以乘以一天中的秒数得到Epoch时间

      【讨论】:

        猜你喜欢
        • 2013-01-25
        • 1970-01-01
        • 2011-08-06
        • 2015-11-19
        • 2016-07-23
        • 2012-04-03
        • 2018-09-07
        • 2018-02-18
        • 1970-01-01
        相关资源
        最近更新 更多