V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
heavyrainn
V2EX  ›  程序员

请问哪位知道这种日期是如何转换的?23374 代表 20201230

  •  
  •   heavyrainn · 2020-12-31 22:27:45 +08:00 · 2219 次点击
    这是一个创建于 1415 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23374 代表 20201230,23192 代表 20200701 。据说叫什么太阳日还是什么的,请问哪位知道这种日期的转换规律呢,感谢大家
    6 条回复    2021-01-01 10:12:02 +08:00
    lloovve
        1
    lloovve  
       2020-12-31 22:29:56 +08:00 via iPhone
    日期差是多少
    Dvel
        2
    Dvel  
       2020-12-31 22:42:52 +08:00
    试了一下

    print(datetime.datetime(2020, 12, 30) - datetime.timedelta(days=23374))
    print(datetime.datetime(2020, 7, 1) - datetime.timedelta(days=23192))

    >>> 1957-01-01 00:00:00
    >>> 1957-01-01 00:00:00

    所以这个 5 位数代表了从 1957-01-01 以来的天数。。。
    这是啥?加密日期吗?
    opengps
        3
    opengps  
       2020-12-31 22:43:58 +08:00
    日期其实种子是:1957,1,1
    tonyaiken
        4
    tonyaiken  
       2021-01-01 01:36:50 +08:00 via iPhone
    我也用过这种格式,比较方便快速提取日期区间的数据。
    tonyaiken
        5
    tonyaiken  
       2021-01-01 01:38:29 +08:00 via iPhone
    不过一般是从 Unix Epoch 开始算,数据名叫 days since epoch
    passerbytiny
        6
    passerbytiny  
       2021-01-01 10:12:02 +08:00 via Android
    23374 与 23192 之间差了 182,20201230 与 20200701 之间也正好差了 182 天,这个大概是 Excel 日期。

    Excel 的日期规则是,距离 1900 年 1 月 1 日的天数。比如,0 是 19000101,1 是 19000102 (具体规则需要找原始文档,我用 liber office 测试的 0 是 18991230,与上面的有出入)。

    不知道你是随手举得例子还是原始数据,你这个日期的基准天数与 Excel 明显不一样( Liber office 中 23374 是 19631229 )。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2818 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:53 · PVG 14:53 · LAX 22:53 · JFK 01:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.