如何获取 Python3 中日期的日期的简短描述?

How to get a short description of the day of the date in Python3?

在使用Python 2.7时,我写了如下内容以获得当天的简短描述。我目前使用的是 3.6。你会推荐什么而不是 mx.DateTime 来做到这一点?

import mx.DateTime

def func(dateVal, format):
    day = ''
    shortDesc = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    if format == '%d.%m.%Y':
        try:
            dateVal = mx.DateTime.DateTime(int(dateVal[6:10]), int(dateVal[3:5]), int(dateVal[0:2]))
            day = shortDesc[dateVal.day_of_week]
        except:
            pass
    return day

为什么不在 Python 2.7 和 3.6 中使用 built-in datetime

一些注意事项:

  • 使用 strptime 解析,而不是手动分解字符串并转换为整数
  • day_of_week几乎可以肯定以'Sun'开头为0
  • 您可以使用 strftime 日期格式字符 %a 作为缩写的工作日名称,尽管那将是本地名称(不一定是英文)
  • 避免使用except: pass;这将隐藏许多您可能确实想要处理或修复或至少知道的错误。相反,抓住具体问题并适当地处理它们(无论是 return '' 还是其他逻辑)
import datetime

def func(date, format):
    the_date = datetime.datetime.strptime(date, format)
    day = the_date.strftime('%a')
    return day

或者,在一行中:

import datetime

def func(date, format):
    return datetime.datetime.strptime(date, format).strftime('%a')