【问题标题】:number to date conversion in excel (weird format)excel中的数字到日期转换(奇怪的格式)
【发布时间】:2013-06-25 03:17:22
【问题描述】:

我从 sql 中收集了一些详细信息,它显示的生日如下(每行代表不同的生日):

-294022800
649119600
-138675600
49158000
32396400
631152000
-2147483648
731894400
-408067200
522025200

我试图用这个公式在 excel 中更改它们:

=DATE(INT(A1/10000),INT((A1-10000*INT(A1/10000))/100),A1-(100*INT(A1/100)))

但效果不好,必须是不同的格式。你知道它是什么格式以及如何在excel中将其转换为日期吗?为什么有些数字是负数? 这可以是 EPOCH 格式吗?如何在excel中将其更改为正常的人类日期?

【问题讨论】:

    标签: excel date excel-formula


    【解决方案1】:

    我的猜测是它们是 unix 时间戳http://en.wikipedia.org/wiki/Unix_time

    在 excel 中,你可以使用类似的东西:

    =(((A1/60)/60)/24)+DATE(1970,1,1)
    

    不过,您必须注意您的日期时间似乎包含夏令时偏移量这一事实。 (其中一些是一天的倍数(24*60*60),但另一些是一个小时)。我不确定为什么你有一个非小时倍数(-2147483648),可能是原始系统的一些怪癖。

    来源:http://spreadsheetpage.com/index.php/tip/converting_unix_timestamps/

    【讨论】:

      【解决方案2】:

      Unix时间戳可以用这个公式转换

      =A1/86400+DATE(1970,1,1)

      Unix 时间戳是自 1970 年 1 月 1 日以来的秒数,因此在此之前的生日将是负数。 [其中一个生日转换为 1901 年——对吗?如果任何日期早于 1900 年,您就会遇到问题,因为 Excel 无法识别这些日期]

      【讨论】:

        【解决方案3】:

        好的,我想通了。这是公式:

        =(A1-(4*3600))/86400+25569
        

        【讨论】:

        • 大概4*3600是时区调整吧?
        • 正确。但我更喜欢你的回答@barryhoudini :) 更通用。谢谢
        猜你喜欢
        • 1970-01-01
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 2015-04-13
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        • 2013-07-09
        相关资源
        最近更新 更多