【问题标题】:Django - String to Date - Date to UNIX TimestampDjango - 字符串到日期 - 日期到 UNIX 时间戳
【发布时间】:2009-08-17 07:42:58
【问题描述】:

我需要从 12/09/2008-12:40:49 形式的字符串(输入到 url)中转换日期。显然,我需要一个 UNIX Timestamp 在它的末尾,但在我得到它之前,我首先需要 Date 对象。

我该怎么做?我找不到任何以该格式显示日期的资源?谢谢。

【问题讨论】:

    标签: python django


    【解决方案1】:

    您需要strptime 方法。如果您使用的是 Python 2.5 或更高版本,这是datetime 上的方法,否则您必须使用timedatetime 模块的组合来实现此目的。

    Python 2.5 以上:

    from datetime import datetime
    dt = datetime.strptime(s, "%d/%m/%Y-%H:%M:%S")
    

    2.5以下:

    from datetime import datetime
    from time import strptime
    dt = datetime(*strptime(s, "%d/%m/%Y-%H:%M:%S")[0:6])
    

    【讨论】:

    • 还是报错? :S >>> >>> time1 = "08-05-2009-05-10-54" >>> dt = datetime.strptime(time1, "%d-%m-%Y %H:%M:% S") Traceback(最近一次调用最后):文件“”,第 1 行,在 文件“/usr/lib/python2.5/_strptime.py”,第 331 行,在 strptime(data_string,格式)) ValueError:时间数据与格式不匹配:data=08-05-2009-05-10-54 fmt=%d-%m-%Y %H:%M:%S >>>
    • 其实那是我的错!非常感谢!
    【解决方案2】:

    您可以使用time.strptime() 方法来解析日期字符串。这将返回一个time_struct,您可以将其传递给time.mktime()(当字符串表示本地时间时)或calendar.timegm()(当字符串是UTC 时间时)以获取自纪元以来的秒数。

    【讨论】:

      猜你喜欢
      • 2013-07-29
      • 1970-01-01
      • 2012-10-25
      • 2010-10-02
      • 1970-01-01
      • 2022-01-03
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多