【问题标题】:Is there any way to combine time and date in python using pandas?有没有办法使用熊猫在python中结合时间和日期?
【发布时间】:2021-11-22 15:44:51
【问题描述】:

我有 2 个函数可以输出日期和时间

def jdtodatestd (jdate):
  if len(jdate) == 5:    
    fmt = '%y%j'
    datestd = datetime.datetime.strptime(jdate, fmt).date()
    return(datestd)
  elif len(jdate) == 6:
    yr = jdate[0:2]
    day = jdate[2:len(jdate)]
    day = day.lstrip('0')
    jdate = yr+day
    fmt = '%y%j'
    datestd = datetime.datetime.strptime(jdate, fmt).date()
    return(datestd)
  elif len(jdate) == 7:
    fmt = '%Y%j'
    datestd = datetime.datetime.strptime(jdate, fmt).date()
    return(datestd)
  
jdtodatestd('120365')

输出:datetime.date(2012, 12, 30)

def jdtotimestd (jtime):
  if len(jtime) == 5:
    jtime = '0' + jtime
  elif len(jtime) == 6:
    jtime = jtime
  else:
    jtime = '000000'
    
  stdtime = jtime[0:2] + ':' +  jtime[2:4]  + ':' + jtime[4:6]
  return stdtime
  
jdtotimestd('140932')

输出:'14:09:32'

我想将两者结合起来,例如 '2012, 12, 30 14:09:32

我该怎么办?

【问题讨论】:

    标签: python pandas date time


    【解决方案1】:

    修改你的函数jdtotimestd:

    def jdtotimestd(jtime):
        """Returns a dt.time object from string."""
        jtime = jtime.zfill(6)
        return datetime.time(int(jtime[:2]), int(jtime[2:4]), int(jtime[4:]))
    
    d = jdtodatestd('120365')
    t = jdtotimestd('140932')
    
    dt = datetime.datetime.combine(d, t)
    

    输出:

    >>> dt
    datetime.datetime(2012, 12, 30, 14, 9, 32)
    

    【讨论】:

      【解决方案2】:

      您可以使用strftimestrptime

      output1 = jdtodatestd('120365')
      output2 = jdtotimestd('140932')
      
      >>> datetime.datetime.strptime(datetime.datetime.strftime(output1, "%Y-%m-%d")+output2, "%Y-%m-%d%H:%M:%S")
      datetime.datetime(2012, 12, 30, 14, 9, 32)
      

      【讨论】:

        猜你喜欢
        • 2020-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-05
        • 1970-01-01
        • 2019-06-27
        • 1970-01-01
        相关资源
        最近更新 更多