代码之家  ›  专栏  ›  技术社区  ›  geejay

用python处理国际日期

  •  6
  • geejay  · 技术社区  · 16 年前

    我有一个约会,用德语表示,例如,

    2. Okt. 2009
    

    2. Oct. 2009
    

    如何将其转换为ISO日期时间(或Python) datetime )?

    for l in locale.locale_alias:
        worked = False
        try:
            locale.setlocale(locale.LC_TIME, l)
            worked = True
        except:
            worked = False
        if worked: print l
    

    然后插入相应的参数l setlocale .

    可以使用解析

    import datetime
    print datetime.datetime.strptime("09. Okt. 2009", "%d. %b. %Y")
    
    2 回复  |  直到 4 年前
        1
  •  10
  •   S.Lott    16 年前

    http://docs.python.org/library/locale.html

    datetime

    大致如下

    # German locale
    loc = locale.setlocale(locale.LC_TIME, ("de","de"))
    try:
         date = datetime.date.strptime(input, "%d. %b. %Y")
    except:
         # English locale
         loc = locale.setlocale(locale.LC_TIME, ("en","us"))
         date = datetime.date.strptime(input, "%d. %b. %Y")
            
    
        2
  •  1
  •   Nicolas Lefebvre    16 年前

    try/expect/else

    for l in locale.locale_alias:
        try:
            locale.setlocale(locale.LC_TIME, l)
        except locale.Error: # the doc says setlocale should throw this on failure
            pass
        else:
            print l