3488

用于获取当前时间的模块/方法是什么?

4

49 回答 49

3582

采用:

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2009, 1, 6, 15, 8, 24, 78915)

>>> print(datetime.datetime.now())
2009-01-06 15:08:24.789150

只是时间:

>>> datetime.datetime.now().time()
datetime.time(15, 8, 24, 78915)

>>> print(datetime.datetime.now().time())
15:08:24.789150

有关更多信息,请参阅文档

为了节省输入,您可以从模块中导入datetime对象:datetime

>>> from datetime import datetime

然后从上述所有内容中删除前导datetime.

于 2009-01-06T04:57:05.317 回答
1105

您可以使用time.strftime()

>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'
于 2009-01-06T04:59:52.503 回答
770
from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S')

对于此示例,输出将如下所示:'2013-09-18 11:16:32'

这是strftime指令列表。

于 2013-01-09T05:50:34.103 回答
506

类似于Harley 的 answer,但使用该str()函数来获得一种快速且易于阅读的、更易于阅读的格式:

>>> from datetime import datetime
>>> str(datetime.now())
'2011-05-03 17:45:35.177000'
于 2011-05-04T00:56:29.527 回答
477

如何在 Python 中获取当前时间?

time模块_

time模块提供了以“自纪元以来的秒数”为单位告诉我们时间的功能以及其他实用程序。

import time

Unix 纪元时间

这是您应该获取时间戳以保存在数据库中的格式。它是一个简单的浮点数,可以转换为整数。它也适用于以秒为单位的算术运算,因为它表示自 1970 年 1 月 1 日 00:00:00 以来的秒数,并且相对于我们接下来要研究的其他时间表示而言,它是记忆轻量级:

>>> time.time()
1424233311.771502

此时间戳不考虑闰秒,因此它不是线性的 - 闰秒被忽略。因此,虽然它不等同于国际 UTC 标准,但它很接近,因此对于大多数记录保存情况来说非常好。

然而,这对于人工调度来说并不理想。如果您有一个希望在某个时间点发生的未来事件,您将希望将该时间与一个可以解析为datetime对象或序列化datetime对象的字符串一起存储(这些将在稍后描述)。

time.ctime

您还可以以操作系统首选的方式表示当前时间(这意味着当您更改系统首选项时它可能会改变,所以不要依赖它作为所有系统的标准,正如我所看到的其他人所期望的那样) . 这通常是用户友好的,但通常不会导致可以按时间顺序排序的字符串:

>>> time.ctime()
'Tue Feb 17 23:21:56 2015'

您还可以使用以下方法将时间戳水合为人类可读的形式ctime

>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'

这种转换也不利于记录保存(除了只能由人类解析的文本 - 并且随着光学字符识别和人工智能的改进,我认为这些案例的数量将会减少)。

datetime模块

datetime模块在这里也非常有用:

>>> import datetime

datetime.datetime.now

datetime.now是一个返回当前时间的类方法。它使用time.localtime没有时区信息的 (如果没有给出,否则请参阅下面的时区感知)。它有一个在 shell 上回显的表示(允许您重新创建一个等效对象),但是当打印(或强制为 a str)时,它是人类可读的(并且几乎是 ISO)格式,并且字典排序相当于按时间排序:

>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461

日期时间的utcnow

您可以通过执行以下操作以 UTC 时间(全球标准)获取 datetime 对象:

>>> datetime.datetime.utcnow()
datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
>>> print(datetime.datetime.utcnow())
2015-02-18 04:53:31.783988

UTC 是几乎等同于 GMT 时区的时间标准。(虽然 GMT 和 UTC 不会因夏令时而改变,但他们的用户可能会在夏季切换到其他时区,例如英国夏令时。)

日期时间时区感知

但是,到目前为止,我们创建的日期时间对象都不能轻松转换为各种时区。我们可以用模块解决这个问题pytz

>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)

等效地,在 Python 3 中,我们有一个附加timezone了 utctimezone实例的类,这也使对象时区感知(但在没有方便pytz模块的情况下转换为另一个时区作为练习留给读者):

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)

我们看到我们可以轻松地从原始 UTC 对象转换为时区。

>>> print(then)
2015-02-18 04:55:58.753949+00:00
>>> print(then.astimezone(pytz.timezone('US/Eastern')))
2015-02-17 23:55:58.753949-05:00

您还可以使用pytztimezonelocalize方法或通过替换 tzinfo 属性(使用replace,这是盲目地完成)使天真的 datetime 对象知道,但这些是最后的手段而不是最佳实践:

>>> pytz.utc.localize(datetime.datetime.utcnow())
datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
>>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)

pytz模块允许我们让我们的datetime对象知道时区并将时间转换为pytz模块中可用的数百个时区。

表面上可以将此对象序列化为 UTC 时间并将其存储数据库中,但与我首先演示的简单存储 Unix 纪元时间相比,它需要更多的内存并且更容易出错。

查看时间的其他方式更容易出错,尤其是在处理可能来自不同时区的数据时。您不希望对字符串或序列化的日期时间对象用于哪个时区产生混淆。

如果您使用 Python 为用户显示时间,则ctime可以很好地工作,而不是在表格中(通常不能很好地排序),但可能在时钟中。但是,我个人建议,在 Python 中处理时间时,使用 Unix 时间或时区感知 UTCdatetime对象。

于 2015-02-18T05:08:34.953 回答
151

from time import time

t = time()
  • t- 浮点数,适合时间间隔测量。

Unix 和 Windows 平台存在一些差异。

于 2009-01-06T13:55:23.017 回答
117
>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

以指定格式输出当前 GMT。还有一种localtime()方法。

页面有更多详细信息。

于 2009-01-06T05:02:43.417 回答
84

以前的答案都是很好的建议,但我发现它最容易使用ctime()

In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'

这给出了当前本地时间的格式良好的字符串表示。

于 2013-10-31T15:39:39.587 回答
78

最快的方法是:

>>> import time
>>> time.strftime("%Y%m%d")
'20130924'
于 2013-09-24T11:21:10.047 回答
65

如果您需要当前时间作为time对象:

>>> import datetime
>>> now = datetime.datetime.now()
>>> datetime.time(now.hour, now.minute, now.second)
datetime.time(11, 23, 44)
于 2010-12-27T10:24:12.343 回答
49

您可以使用该time模块:

>>> import time
>>> print(time.strftime("%d/%m/%Y"))
06/02/2015

资本的使用Y给出了全年,使用y将给出06/02/15

您还可以使用以下代码来延长时间:

>>> time.strftime("%a, %d %b %Y %H:%M:%S")
'Fri, 06 Feb 2015 17:45:09'
于 2015-02-06T17:46:46.223 回答
48

.isoformat()在文档中,但还没有(这与@Ray Vega 的答案非常相似):

>>> import datetime
>>> datetime.datetime.now().isoformat()
'2013-06-24T20:35:55.982000'
于 2013-06-25T00:38:25.233 回答
46

为什么不问问美国海军的官方计时美国海军天文台?

import requests
from lxml import html

page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)
print(tree.xpath('//html//body//h3//pre/text()')[1])

如果你住在华盛顿地区(像我一样),延迟可能不会太糟糕......

于 2016-08-19T19:45:08.020 回答
42

使用pandas来获取当前时间,有点过分解决手头的问题:

import pandas as pd
print(pd.datetime.now())
print(pd.datetime.now().date())
print(pd.datetime.now().year)
print(pd.datetime.now().month)
print(pd.datetime.now().day)
print(pd.datetime.now().hour)
print(pd.datetime.now().minute)
print(pd.datetime.now().second)
print(pd.datetime.now().microsecond)

输出:

2017-09-22 12:44:56.092642
2017-09-22
2017
9
22
12
44
56
92693
于 2017-09-22T12:45:57.697 回答
35

如果您已经在使用 numpy,那么您可以直接使用 numpy.datetime64() 函数。

import numpy as np
str(np.datetime64('now'))

仅限日期:

str(np.datetime64('today'))

或者,如果您已经在使用 pandas,那么您可以使用 pandas.to_datetime() 函数

import pandas as pd
str(pd.to_datetime('now'))

或者,

str(pd.to_datetime('today'))
于 2017-11-07T06:17:52.507 回答
34

这就是我最终的结果:

>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11

此外,此表是选择适当格式代码以按照您想要的方式格式化日期的必要参考(来自 Python “datetime” 文档here)。

strftime 格式码表

于 2015-01-09T18:24:49.280 回答
32

datetime.now()返回当前时间作为表示本地时区时间的简单日期时间对象。该值可能是不明确的,例如,在 DST 转换期间(“回退”)。为避免歧义,应使用 UTC 时区:

from datetime import datetime

utc_time = datetime.utcnow()
print(utc_time) # -> 2014-12-22 22:48:59.916417

或附加了相应时区信息的时区感知对象(Python 3.2+):

from datetime import datetime, timezone

now = datetime.now(timezone.utc).astimezone()
print(now) # -> 2014-12-23 01:49:25.837541+03:00
于 2014-12-22T22:52:47.630 回答
27
import datetime
date_time = datetime.datetime.now()

date = date_time.date()  # Gives the date
time = date_time.time()  # Gives the time

print date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond

dir(date)或任何变量,包括包。您可以获得与变量关联的所有属性和方法。

于 2017-04-09T04:17:34.113 回答
25

这个问题不需要一个新的答案只是为了它......一个闪亮的新玩具/模块,然而,足够的理由。那就是Pendulum 库,它似乎做了arrow 尝试过的那种事情,除了没有困扰arrow 的固有缺陷和错误。

例如,原始问题的答案:

>>> import pendulum
>>> print(pendulum.now())
2018-08-14T05:29:28.315802+10:00
>>> print(pendulum.now('utc'))
2018-08-13T19:29:35.051023+00:00

有很多标准需要解决,包括多个 RFC 和 ISO,需要担心。永远把它们弄混;不用担心,看看dir(pendulum.constants)这里有比 RFC 和 ISO 格式更多的东西。

当我们说本地时,虽然我们是什么意思?好吧,我的意思是:

>>> print(pendulum.now().timezone_name)
Australia/Melbourne
>>>

大概你们中的大多数人是指其他地方。

然后继续。长话短说:Pendulum 尝试对日期和时间做请求对 HTTP 所做的事情。值得考虑,尤其是它的易用性和广泛的文档。

于 2018-08-13T20:08:17.713 回答
24
>>> import datetime, time
>>> time = time.strftime("%H:%M:%S:%MS", time.localtime())
>>> print time
'00:21:38:20S'
于 2014-05-20T07:13:36.830 回答
23

默认情况下,now()函数以YYYY-MM-DD HH:MM:SS:MS格式返回输出。使用以下示例脚本在 Python 脚本中获取当前日期和时间并在屏幕上打印结果。getDateTime1.py使用以下内容创建文件。

import datetime

currentDT = datetime.datetime.now()
print (str(currentDT))

输出如下所示:

2018-03-01 17:03:46.759624
于 2018-03-01T11:34:55.600 回答
21

尝试来自http://crsmithdev.com/arrow/的箭头模块:

import arrow
arrow.now()

或 UTC 版本:

arrow.utcnow()

要更改其输出,请添加 .format():

arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')

对于特定时区:

arrow.now('US/Pacific')

一小时前:

arrow.utcnow().replace(hours=-1)

或者,如果您想要要点。

arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
>>> '2 years ago'
于 2015-11-14T02:02:45.137 回答
20

要获得精确的3 毫秒小数点11:34:23.751,请运行以下命令:

def get_time_str(decimal_points=3):
        return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)

更多背景:

我想得到毫秒的时间。获取它们的简单方法:

import time, datetime

print(datetime.datetime.now().time())                         # 11:20:08.272239

# Or in a more complicated way
print(datetime.datetime.now().time().isoformat())             # 11:20:08.272239
print(datetime.datetime.now().time().strftime('%H:%M:%S.%f')) # 11:20:08.272239

# But do not use this:
print(time.strftime("%H:%M:%S.%f", time.localtime()), str)    # 11:20:08.%f

但我只想要毫秒,对吧?获得它们的最短方法:

import time

time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 1000)
# 11:34:23.751

从最后一个乘法中添加或删除零以调整小数点数,或者只是:

def get_time_str(decimal_points=3):
    return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)
于 2016-07-18T09:45:50.113 回答
18

你可以使用这个函数来获取时间(不幸的是它没有说上午或下午):

def gettime():
    from datetime import datetime
    return ((str(datetime.now())).split(' ')[1]).split('.')[0]

要获取稍后合并的小时、分钟、秒和毫秒,可以使用以下函数:

小时:

def gethour():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]

分钟:

def getminute():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]

第二:

def getsecond():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]

毫秒:

def getmillisecond():
    from datetime import datetime
    return (str(datetime.now())).split('.')[1]
于 2017-11-29T08:22:57.570 回答
18

如果您只想要以 ms 为单位的当前时间戳(例如,测量执行时间),您还可以使用“timeit”模块:

import timeit
start_time = timeit.default_timer()
do_stuff_you_want_to_measure()
end_time = timeit.default_timer()
print("Elapsed time: {}".format(end_time - start_time))
于 2018-07-18T07:11:56.947 回答
18

时区的当前时间

from datetime import datetime
import pytz

tz_NY = pytz.timezone('America/New_York') 
datetime_NY = datetime.now(tz_NY)
print("NY time:", datetime_NY.strftime("%H:%M:%S"))

tz_London = pytz.timezone('Europe/London')
datetime_London = datetime.now(tz_London)
print("London time:", datetime_London.strftime("%H:%M:%S"))

tz_India = pytz.timezone('Asia/India')
datetime_India = datetime.now(tz_India)
print("India time:", datetime_India.strftime("%H:%M:%S"))

#list timezones
pytz.all_timezones
于 2019-10-18T13:09:33.563 回答
17

您可以尝试以下方法

import datetime

now = datetime.datetime.now()
print(now)

或者

import datetime

now = datetime.datetime.now()
print(now.strftime("%Y-%b-%d, %A %I:%M:%S"))
于 2020-06-04T22:29:18.353 回答
16

因为还没有人提到它,这是我最近遇到的事情...... pytz 时区的 fromutc() 方法结合 datetime 的 utcnow() 是我发现获得有用的当前时间(和日期)的最佳方法在任何时区。

from datetime import datetime

import pytz


JST = pytz.timezone("Asia/Tokyo")


local_time = JST.fromutc(datetime.utcnow())

如果您想要的只是时间,那么您可以使用local_time.time().

于 2018-07-06T08:24:22.773 回答
15
import datetime

todays_date = datetime.date.today()
print(todays_date)
>>> 2019-10-12

# adding strftime will remove the seconds
current_time = datetime.datetime.now().strftime('%H:%M')
print(current_time)
>>> 23:38
于 2019-10-12T18:09:19.023 回答
12

您可以使用 ctime() 执行此操作:

from time import time, ctime
t = time()
ctime(t)

输出:

Sat Sep 14 21:27:08 2019

这些输出是不同的,因为返回的时间戳ctime()取决于您的地理位置。

于 2019-09-14T16:00:15.797 回答
11

方法1:从系统日期时间获取当前日期和时间

datetime模块提供用于处理日期和时间的类。

代码

from datetime import datetime,date

print("Date: "+str(date.today().year)+"-"+str(date.today().month)+"-"+str(date.today().day))
print("Year: "+str(date.today().year))
print("Month: "+str(date.today().month))
print("Day: "+str(date.today().day)+"\n")

print("Time: "+str(datetime.today().hour)+":"+str(datetime.today().minute)+":"+str(datetime.today().second))
print("Hour: "+str(datetime.today().hour))
print("Minute: "+str(datetime.today().minute))
print("Second: "+str(datetime.today().second))
print("MilliSecond: "+str(datetime.today().microsecond))

输出会像

Date: 2020-4-18
Year: 2020
Month: 4
Day: 18

Time: 19:30:5
Hour: 19
Minute: 30
Second: 5
MilliSecond: 836071

方法 2:如果网络可用,则获取当前日期和时间

urllib包帮助我们处理表示网页的 url。在这里,我们从网页http://just-the-time.appspot.com/收集数据,并使用包 dateparser 从网页中解析日期时间

代码

from urllib.request import urlopen
import dateparser

time_url = urlopen(u'http://just-the-time.appspot.com/')
datetime = time_url.read().decode("utf-8", errors="ignore").split(' ')[:-1]
date = datetime[0]
time = datetime[1]

print("Date: "+str(date))
print("Year: "+str(date.split('-')[0]))
print("Month: "+str(date.split('-')[1]))
print("Day: "+str(date.split('-')[2])+'\n')

print("Time: "+str(time))
print("Hour: "+str(time.split(':')[0]))
print("Minute: "+str(time.split(':')[1]))
print("Second: "+str(time.split(':')[2]))

输出会像

Date: 2020-04-18
Year: 2020
Month: 04
Day: 18

Time: 14:17:10
Hour: 14
Minute: 17
Second: 10

方法3:从机器的本地时间获取当前日期和时间

Python 的时间模块提供了一个函数,用于从称为 localtime() 的纪元以来经过的秒数中获取本地时间。ctime()函数将自纪元以来经过的秒数作为参数,并返回一个表示本地时间的字符串。

代码

from time import time, ctime
datetime = ctime(time()).split(' ')

print("Date: "+str(datetime[4])+"-"+str(datetime[1])+"-"+str(datetime[2]))
print("Year: "+str(datetime[4]))
print("Month: "+str(datetime[1]))
print("Day: "+str(datetime[2]))
print("Week Day: "+str(datetime[0])+'\n')

print("Time: "+str(datetime[3]))
print("Hour: "+str(datetime[3]).split(':')[0])
print("Minute: "+str(datetime[3]).split(':')[1])
print("Second: "+str(datetime[3]).split(':')[2])

输出会像

Date: 2020-Apr-18
Year: 2020
Month: Apr
Day: 18
Week Day: Sat

Time: 19:30:20
Hour: 19
Minute: 30
Second: 20
于 2020-04-18T14:32:25.640 回答
9

以下是我用来获取时间而无需格式化的内容。有些人不喜欢 split 方法,但它在这里很有用:

from time import ctime
print ctime().split()[3]

它将以 HH:MM:SS 格式打印。

于 2015-05-01T01:39:08.203 回答
9
import datetime
date_time = str(datetime.datetime.now()).split()
date,time = date_time

date将打印日期,time将打印时间。

于 2016-07-14T05:50:20.183 回答
9

这个问题是针对 Python 的,但由于 Django 是 Python 中使用最广泛的框架之一,重要的是要注意,如果您使用的是 Django,您始终可以timezone.now()使用datetime.datetime.now(). 前者是“感知”时区,而后者不是。

有关详细信息和背后的理由,请参阅此 SO 答案Django 文档timezone.now()

from django.utils import timezone

now = timezone.now()
于 2019-06-05T10:19:27.303 回答
9

试试这个:-

from datetime import datetime

now = datetime.now()

current_time = now.strftime("%H:%M:%S")
print("Current Time =", current_time)
于 2021-09-08T10:57:50.803 回答
8

这很简单。尝试:

import datetime
date_time = str(datetime.datetime.now())
date = date_time.split()[0]
time = date_time.split()[1]
于 2019-01-21T09:42:59.307 回答
7
from time import ctime

// Day {Mon,Tue,..}
print ctime().split()[0]
// Month {Jan, Feb,..}
print ctime().split()[1]
// Date {1,2,..}
print ctime().split()[2]
// HH:MM:SS
print ctime().split()[3]
// Year {2018,..}
print ctime().split()[4]

当您调用ctime()它时,它将秒转换为格式的字符串'Day Month Date HH:MM:SS Year'(例如:) 'Wed January 17 16:53:22 2018',然后您调用split()将从您的字符串创建列表的方法['Wed','Jan','17','16:56:45','2018'](默认分隔符是空格)。

括号用于在列表中“选择”想要的参数。

应该只调用一个代码行。不应该像我那样称呼它们,这只是一个例子,因为在某些情况下你会得到不同的值,罕见但并非不可能的情况。

于 2018-01-16T14:45:15.823 回答
7

获取当前日期时间属性:

import datetime

currentDT = datetime.datetime.now()

print ("Current Year is: %d" % currentDT.year)
print ("Current Month is: %d" % currentDT.month)
print ("Current Day is: %d" % currentDT.day)
print ("Current Hour is: %d" % currentDT.hour)
print ("Current Minute is: %d" % currentDT.minute)
print ("Current Second is: %d" % currentDT.second)
print ("Current Microsecond is: %d" % currentDT.microsecond)


#!/usr/bin/python
import time;

ticks = time.time()
print "Number of ticks since "12:00am, Jan 1, 1970":", ticks
于 2019-03-04T08:40:39.680 回答
5

首先从 datetime 导入 datetime 模块

from datetime import datetime

然后将当前时间打印为 'yyyy-mm-dd hh:mm:ss'

print(str(datetime.now())

要仅获取 'hh:mm:ss' 形式的时间,其中 ss 代表完整的秒数加上经过的秒数,只需执行;

print(str(datetime.now()[11:])

将 datetime.now() 转换为字符串会产生一个答案,其格式与我们习惯的常规日期和时间类似。

于 2018-05-24T20:27:29.367 回答
5

如果您将它用于 django datetime 有时无法在服务器上运行,因此我建议使用时区

但是要使用 django 时区,您应该在 settings.py 中设置您的国家时区代码

TIME_ZONE = 'Asia/Tashkent'

然后你就可以使用它了

from django.utils import timezone

timezone.now() // for date time

timezone.now().year // for yaer

timezone.now().month // for month

timezone.now().day // for day 

timezone.now().date // for date

timezone.now().hour // for hour

timezone.now().weekday // for minute

或者如果你想在 python 上使用

import time

time.strftime('%X') // '13:12:47'

time.strftime('%x') // '01/20/22'

time.strftime('%d') // '20' day

time.strftime('%m') // '01' month

time.strftime('%y') // '20' year

time.strftime('%H') // '01' hour

time.strftime('%M') // '01' minute

time.strftime('%m') // '01' second
于 2022-01-20T08:17:20.527 回答
4

time模块可以导入各种时间的东西,包括睡眠和其他类型的东西,包括 - 当前时间类型

import time
time.strftime("%T", time.localtime())

输出应如下所示

05:46:33
11:22:56
13:44:55
22:33:44
00:00:00
于 2020-04-20T12:53:43.503 回答
4

我们可以使用 datetime 模块来完成

>>> from datetime import datetime
>>> now = datetime.now() #get a datetime object containing current date and time
>>> current_time = now.strftime("%H:%M:%S") #created a string representing current time
>>> print("Current Time =", current_time)
Current Time = 17:56:54

此外,我们可以使用pytZ 模块获取时区的当前时间。

>>> from pytz import timezone
>>> import pytz
>>> eastern = timezone('US/Eastern')
>>> eastern.zone
'US/Eastern'
>>> amsterdam = timezone('Europe/Amsterdam')
>>> datetime_eu = datetime.now(amsterdam)
>>> print("Europe time::", datetime_eu.strftime("%H:%M:%S"))
Europe time:: 14:45:31
于 2020-06-13T12:49:31.683 回答
4
import datetime

print('date='+datetime.datetime.now().__str__().split(' ')[0]+' '+'time='+datetime.datetime.now().__str__().split(' ')[1]

由于 Qt 被广泛使用,

from PyQt5 import QDateTime
print(QDateTime.currentDateTime().__str__().split('(')[1].rstrip(')'))
于 2021-03-29T06:09:33.360 回答
2

如果您想要时间用于计时函数调用,那么您需要 time.perf_counter()。

start_time = time.perf_counter()
expensive_function()
time_taken = time.perf_counter() - start_time
print(f'expensive_function() took {round(time_taken,2)}s')

time.perf_counter() → 浮动

返回性能计数器的值(以秒为单位),即具有最高可用分辨率的时钟以测量短持续时间。它确实包括睡眠期间经过的时间,并且是系统范围的。返回值的参考点是未定义的,因此只有连续调用的结果之间的差异才有效。

3.3 版中的新功能。


time.perf_counter_ns() → int

类似于 perf_counter(),但返回时间为纳秒。

3.7 版中的新功能。

于 2020-06-17T09:15:56.250 回答
2

从 Python 3.9 开始,该zoneinfo模块可用于获取时区,而不是使用第三方库。

要获取特定时区的当前时间:

from datetime import datetime
from zoneinfo import ZoneInfo

datetime.now(tz=ZoneInfo("Europe/Amsterdam"))
于 2020-06-27T10:10:32.040 回答
1

这是仅根据您的问题显示时间的代码:

 from datetime import datetime

 while True:
          time= datetime.now()
          b = time.strftime("%H:%M:%S")
          print(b, end='\r')

此代码将显示您系统的当前时间,而不会停止。

于 2021-06-21T10:05:32.167 回答
1

now() 的属性可用于在 python 中获取当前时间:

# importing datetime module for now()
import datetime
    
# using now() to get current time
current_time = datetime.datetime.now()
    
# Printing attributes of now().
print ("The attributes of now() are : ")
    
print ("Year : ", end = "")
print (current_time.year)
    
print ("Month : ", end = "")
print (current_time.month)
    
print ("Day : ", end = "")
print (current_time.day)
    
print ("Hour : ", end = "")
print (current_time.hour)
    
print ("Minute : ", end = "")
print (current_time.minute)
    
print ("Second : ", end = "")
print (current_time.second)
    
print ("Microsecond : ", end = "")
print (current_time.microsecond)
于 2022-02-20T05:55:18.940 回答
0

将此方法用于 UTC 日期时间、本地日期时间,并转换上午和下午

import pytz
from datetime import datetime

#UTC Time
print("UTC Date and time")
epoch: datetime =datetime.now().replace(tzinfo=pytz.utc)
print(epoch)

#local date and time
print("Local Date and time")
today = datetime.now()
local_time = today.strftime("%Y-%M-%d:%H:%M:%S")
print(local_time)

#convert time to AM PM format
print("Date and time AM and PM")
now = today.strftime("%Y-%M-%d:%I:%M %p")
print(now)
于 2022-01-17T13:53:44.350 回答
0

获取当前时间并将其转换为字符串:

from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S')
于 2022-02-13T18:53:30.773 回答