如何获取当前时间?


当前回答

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'中列出一个列表(默认delimeter为空格)。

括号用于在列表中“选择”所需参数。

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

其他回答

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

from datetime import datetime

import pytz


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


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

如果您只需要时间,那么可以使用local_time.time()获取时间。

>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

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

此页包含更多详细信息。

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

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

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

您可以尝试以下操作

import datetime

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

or

import datetime

now = datetime.datetime.now()
print(now.strftime("%Y-%b-%d, %A %I:%M:%S"))

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

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])

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