【问题标题】:drop hour,min,sec from timestemp?从时间戳中删除小时,分钟,秒?
【发布时间】:2016-08-01 23:40:48
【问题描述】:

我想将日期从 sas 14487 转换为 1999-08-31。

如何将当前结果“1999-08-31 00:00:00”转换为“1999-08-31”? 我试过 ser.normalize()。但这无济于事。

ser = pd.to_timedelta(14487, unit='D') + pd.Timestamp('1960-1-1')
ser.normalize()

产量

Timestamp('1999-08-31 00:00:00')

【问题讨论】:

    标签: python pandas timestamp


    【解决方案1】:

    normalize 只是将时间重置为午夜(根据the docs)。

    您可以使用strftime(请参阅文档here)。此外,here 是您可以使用的格式说明符列表。

    ser = pd.to_timedelta(14487, unit='D') + pd.Timestamp('1960-1-1')
    ser.strftime('%Y-%m-%d')
    

    输出

    '1999-08-31'
    

    【讨论】:

    • 谢谢。@Alex 知道为什么 .normalize() 不起作用吗?
    • @user7153 欢迎!更新帖子来回答这个问题。
    【解决方案2】:

    如果您希望它采用 datetime.date 格式:

    (pd.to_timedelta(14487, unit='D') + pd.Timestamp('1960-1-1')).date()
    #Out: 
    #datetime.date(1999, 8, 31)
    

    【讨论】:

      猜你喜欢
      • 2013-10-08
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多