如何获取当前时间?


当前回答

这个问题不需要一个新的答案。。。然而,一个闪亮的新玩具/模块就足够了。这就是摆库,它似乎做了箭头所尝试的那种事情,除了没有困扰箭头的固有缺陷和缺陷。

例如,原始问题的答案:

>>> 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(钟摆常量),但这里有一点不仅仅是RFC和ISO格式。

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

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

想必你们中的大多数人都是指其他地方。

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

其他回答

时间模块可以导入各种时间信息,包括睡眠和其他类型的信息,包括当前时间类型

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

输出应如下所示

05:46:33
11:22:56
13:44:55
22:33:44
00:00:00

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

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

from django.utils import timezone

now = timezone.now()

在Python 3.9中,zoneinfo模块可以用于获取时区,而不是使用第三方库。

要获取特定时区中的当前时间,请执行以下操作:

from datetime import datetime
from zoneinfo import ZoneInfo

datetime.now(tz=ZoneInfo("Europe/Amsterdam"))

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

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

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

如果您已经在使用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'))

or,

str(pd.to_datetime('today'))