如何获取当前时间?
当前回答
这应该行得通
import time
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
print("The current time is", current_time)
其他回答
默认情况下,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
时间模块可以导入各种时间信息,包括睡眠和其他类型的信息,包括当前时间类型
import time
time.strftime("%T", time.localtime())
输出应如下所示
05:46:33
11:22:56
13:44:55
22:33:44
00:00:00
方法1:从系统datetime获取当前日期和时间
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/并使用包日期解析器从网页解析日期时间。
密码
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()函数将从epoch开始经过的秒数作为参数,并返回表示本地时间的字符串。
密码
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
如何在Python中获取当前时间?
时间模块
时间模块提供了以“自纪元以来的秒”为单位告诉我们时间的函数以及其他实用程序。
import time
Unix大纪元时间
这是保存在数据库中时应该使用的时间戳格式。它是一个可以转换为整数的简单浮点数。它也适用于以秒为单位的算术,因为它代表了自1970年1月1日00:00:00以来的秒数,相对于我们接下来将要讨论的其他时间表示,它是一种记忆之光:
>>> time.time()
1424233311.771502
这个时间戳不考虑闰秒,所以它不是线性的-闰秒被忽略。因此,虽然它不等同于国际UTC标准,但它是接近的,因此对于大多数记录保存来说都很好。
然而,这对于人工调度来说并不理想。如果您希望在某个时间点发生将来的事件,那么您需要使用一个字符串来存储该时间,该字符串可以解析为datetime对象或序列化datetime对象(稍后将对此进行描述)。
时间.ctime
您还可以以操作系统首选的方式表示当前时间(这意味着当您更改系统首选项时,它可能会发生变化,所以不要像我看到的其他人所期望的那样,依赖于此来作为所有系统的标准)。这通常是用户友好的,但通常不会产生可以按时间顺序排序的字符串:
>>> time.ctime()
'Tue Feb 17 23:21:56 2015'
您还可以使用ctime将时间戳合成人类可读的形式:
>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'
这种转换也不利于记录保存(除非是只有人类才能解析的文本,而且随着光学字符识别和人工智能的改进,我认为这种情况的数量会减少)。
日期时间模块
datetime模块在这里也非常有用:
>>> import datetime
datetime.datetime.now
datetime.now是一个返回当前时间的类方法。它使用不带时区信息的time.localtime(如果没有给出,请参见下面的时区信息)。它有一个表示(这将允许您重新创建一个等效的对象)在外壳上回响,但当打印(或强制转换为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
datetime的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不更改夏令时,但他们的用户可以在夏季切换到其他时区,如英国夏令时。)
日期时间时区感知
然而,到目前为止,我们创建的datetime对象都无法轻松转换为不同的时区。我们可以用pytz模块解决这个问题:
>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)
等价地,在Python 3中,我们有一个附加了utc时区实例的时区类,这也使对象时区可感知(但要转换为另一个没有方便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
您还可以使用pytz时区本地化方法,或通过替换tzinfo属性(使用替换,这是盲目的),使天真的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 Epoch时间相比,它需要更多的内存,更容易出错。
其他查看时间的方式更容易出错,尤其是在处理可能来自不同时区的数据时。您不希望混淆字符串或序列化日期时间对象的目标时区。
如果您使用Python为用户显示时间,ctime工作得很好,不是在表中(通常排序不好),而是在时钟中。然而,我个人建议,在Python中处理时间时,使用Unix时间或时区感知UTC日期时间对象。
您可以使用此函数获取时间(遗憾的是,它没有显示AM或PM):
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]
推荐文章
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录
- 我如何告诉matplotlib我已经完成了一个情节?
- 如何在Python中记录源文件名称和行号