【问题标题】:Easiest way to combine date and time strings to single datetime object using Python使用 Python 将日期和时间字符串组合到单个日期时间对象的最简单方法
【发布时间】:2012-03-06 06:23:43
【问题描述】:

我有一个 Web 表单,它有 2 个输入字段,“StartDate”和“StartTime”。我将StartDate 字段的字符串转换为Python datetime 对象,没问题。 StartTime 字段在凌晨 1:30 以“0130”形式作为字符串传入。转换StartTime 字符串并将其与StartDate datetime 对象组合以便两者都存储为单个datetime 的最佳方法是什么?任何线索都会很棒!

【问题讨论】:

  • 检查datetime.combine

标签: python datetime


【解决方案1】:

使用datetime.combine:

import datetime as dt
mytime = dt.datetime.strptime('0130','%H%M').time()
mydatetime = dt.datetime.combine(dt.date.today(), mytime)

【讨论】:

  • 可读性说明:当模块名和类名相同时(本例为datetime)我更喜欢用别名来说明。
【解决方案2】:

如果可以将时间加载到datetime.time中,可以使用以下代码

import datetime

dt = datetime.datetime(2012, 2, 12)
tm = datetime.time(1, 30)

combined = dt.combine(dt, tm)

print(combined)

输出

2012-02-12 01:30:00

【讨论】:

    【解决方案3】:

    只是一个简短的版本:

    from datetime import datetime
    print datetime.combine(datetime.strptime("5 Mar 12", "%d %b %y"), datetime.strptime("0130","%H%M").time())
    

    输出

    2012-03-05 01:30:00
    

    【讨论】:

      【解决方案4】:
      import datetime
      def time_tango(date, time):
          return datetime.datetime.combine(date, time)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-31
        • 1970-01-01
        • 2012-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多