python - 各种 Python 日期时间问题

标签 python datetime

我有两种方法在模板引擎中用作自定义标签:

# Renders a <select> form field
def select_field(options, selected_item, field_name):
    options = [(str(v),str(v)) for v in options]
    html = ['<select name="%s">' % field_name]
    for k,v in options:
        tmp = '<option '
        if k == selected_item:
            tmp += 'selected '
        tmp += 'value="%s">%s</option>' % (k,v)
        html.append(tmp)
    html.append('</select>')
    return '\n'.join(html)

# Renders a collection of <select> fields for datetime values
def datetime_field(current_dt, field_name):
    if current_dt == None:
        current_dt = datetime.datetime.now()
    day = select_field(range(1, 32), current_dt.day, field_name + "_day")
    month = select_field(range(1, 13), current_dt.month, field_name + "_month")
    year = select_field(range(datetime.datetime.now().year, datetime.datetime.now().year + 10), current_dt.year, field_name + "_year")
    hour = select_field(range(1, 13), current_dt.hour, field_name + "_hour")
    minute = select_field(range(1, 60), current_dt.minute, field_name + "_minute")
    period = select_field(['AM', 'PM'], 'AM', field_name + "_period")
    return "\n".join([day, '/', month, '/', year, ' at ', hour, ':', minute, period])

如您在评论中所见,我正在尝试生成用于构建日期和时间值的选择字段。

我的第一个问题是,如何使日、月、小时和分钟范围使用两位数?例如,代码生成“1、2、3...”,而我想要“01、02、03”。

接下来,生成字段时,不会自动选择提供的日期时间的值,即使我告诉 select_field 方法在值等于提供的日期时间的值时添加“已选择”属性。

最后,如何获取提供的日期时间的 12 小时周期标识符 (AM/PM)?目前,我只是默认选择“AM”,但我想从日期时间本身提供这个值。

最佳答案

将整数范围转换为两位数字字符串:

>>> range(13)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
>>> [ '%02d' % i for i in range(13) ]
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']

然后获取 AM/PM 指标:

>>> import datetime
>>> current_dt = datetime.datetime.now()
>>> current_dt
datetime.datetime(2009, 2, 4, 22, 2, 14, 390000)
>>> ['AM','PM'][current_dt.hour>=12]
'PM'

瞧!

关于python - 各种 Python 日期时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/513291/

相关文章:

javascript - 在javascript中检索一年的最后一天

Python:如何要求字符串作为输入而不是特定值

c# - 计算两个日期之间的月差

python - 打开 deploy.prototxt 时出现 RuntimeError

python - Pycharm自动更新引用

python - 如何获取正确格式的日期以供 YouTube 上传?

Python pandas date_range 采样分别分配给每一天

javascript - 如何判断一个字符串是否是日期格式?

python - 如何在 CentOS 上降级 python 版本?

python - 在 PyQt 中,QTextEdit.setTextColor() 在移动光标之前不起作用