54

From what I gather, here (for example), this should print the current year in two digits

print (datetime.strftime("%y"))

However, I get this error

TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str'

So I tried to this

print (datetime.strftime(datetime.date()))

to get

TypeError: descriptor 'date' of 'datetime.datetime' object needs an argument

so I placed "%y" inside of thr date() above to get

TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'str'

Which start to seem really loopy and fishy to me.

What am I missing?

4

5 回答 5

88
import datetime
now = datetime.datetime.now()

print(now.year)

上面的代码对我来说非常好。

于 2013-06-11T20:31:28.547 回答
26

以下似乎有效:

import datetime
print (datetime.datetime.now().strftime("%y"))

它想要的 datetime.data 对象位于点的“左侧”而不是右侧。您需要一个日期时间的实例来调用该方法,您可以通过 now()

于 2013-06-11T20:33:10.727 回答
9

我每次都使用这个标准

import datetime
now = datetime.datetime.now()
print ("Current date and time : ")
print (now.strftime("%Y-%m-%d %H:%M:%S"))
于 2019-10-10T06:58:18.410 回答
6

此功能允许您以多种格式获取日期和时间(请参阅本文底部)。

# Get the current date or time
def getdatetime(timedateformat='complete'):
    from datetime import datetime
    timedateformat = timedateformat.lower()
    if timedateformat == 'day':
        return ((str(datetime.now())).split(' ')[0]).split('-')[2]
    elif timedateformat == 'month':
        return ((str(datetime.now())).split(' ')[0]).split('-')[1]
    elif timedateformat == 'year':
        return ((str(datetime.now())).split(' ')[0]).split('-')[0]
    elif timedateformat == 'hour':
        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]
    elif timedateformat == 'minute':
        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]
    elif timedateformat == 'second':
        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]
    elif timedateformat == 'millisecond':
        return (str(datetime.now())).split('.')[1]
    elif timedateformat == 'yearmonthday':
        return (str(datetime.now())).split(' ')[0]
    elif timedateformat == 'daymonthyear':
        return ((str(datetime.now())).split(' ')[0]).split('-')[2] + '-' + ((str(datetime.now())).split(' ')[0]).split('-')[1] + '-' + ((str(datetime.now())).split(' ')[0]).split('-')[0]
    elif timedateformat == 'hourminutesecond':
        return ((str(datetime.now())).split(' ')[1]).split('.')[0]
    elif timedateformat == 'secondminutehour':
        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2] + ':' + (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1] + ':' + (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]
    elif timedateformat == 'complete':
        return str(datetime.now())
    elif timedateformat == 'datetime':
        return (str(datetime.now())).split('.')[0]
    elif timedateformat == 'timedate':
        return ((str(datetime.now())).split('.')[0]).split(' ')[1] + ' ' + ((str(datetime.now())).split('.')[0]).split(' ')[0]

要获取时间或日期,只需使用getdatetime("<TYPE>"), 替换<TYPE>为以下参数之一:

所有示例输出都使用此模型信息:25-11-2017 03:23:56.477017

争论 意义 示例输出
获取当前日期 25
获取当前月份 11
获取当前年份 2017
小时 获取当前时间 03
分钟 获取当前分钟 23
第二 获取当前秒 56
毫秒 获取当前毫秒 477017
年月日 获取年月日 2017-11-25
日月年 获取日期、月份和年份 25-11-2017
时分秒 获取小时、分钟和秒 03:23:56
秒分钟小时 获取秒、分和小时 56:23:03
完全的 获取完整的日期和时间 2017-11-25 03:23:56.477017
约会时间 获取日期和时间 2017-11-25 03:23:56
时间日期 获取时间和日期 2017-11-25 03:23:56
于 2017-11-25T02:45:50.430 回答
5

我总是使用这个代码,它在元组中打印年份到第二个

import datetime

now = datetime.datetime.now()

time_now = (now.year, now.month, now.day, now.hour, now.minute, now.second)

print(time_now)
于 2018-05-04T16:49:49.340 回答