from datetime import datetime, timezone
now = datetime.now(timezone.utc).astimezone()
print(now) # -> 2014-12-23 01:49:25.837541+03:00
12
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) 或包括包的任何变量 . 您可以获得与变量关联的所有属性和方法 .
12
如果你已经使用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'))
10
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'](默认的分隔符是空格) .
括号用于在列表中“选择”想要的参数 .
一个人应该只调用一个代码行 . 一个人不应该像我一样打电话给他们,这只是一个例子,因为在某些情况下你会得到不同的 Value 观,罕见但不是不可能的情况 .
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])
def gettime():
from datetime import datetime
return ((str(datetime.now())).split(' ')[1]).split('.')[0]
要获得稍后合并的小时,分钟,秒和毫秒,您可以使用以下功能:
小时:
def gethour():
from datetime import datetime
return 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 return (str(datetime.now())).split('.')[1]
4
我想用毫秒来得到时间 . 获得它们的简单方法:
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
30 回答
所有好的建议,但我发现自己最容易使用
ctime()
:这给出了当前本地时间的格式良好的字符串表示 .
使用Pandas来获取当前时间,有点过头了解手头的问题:
输出:
首先从datetime导入datetime模块
然后将当前时间打印为'yyyy-mm-dd hh:mm:ss'
为了得到'hh:mm:ss'形式的时间,其中ss代表完整的秒数加上经过的秒数,就这样做;
将datetime.now()转换为字符串会产生一种答案,其格式与我们习惯的常规日期和时间一样 .
尝试http://crsmithdev.com/arrow/中的箭头模块:
或者UTC版本:
要更改其输出,请添加.format():
对于特定时区:
一小时前:
或者如果你想要要点 .
做
t
- 浮点数,适用于时间间隔测量 .Unix和Windows平台有一些区别 .
如果您需要当前时间作为
time
对象:您可以使用
time
模块 .使用资本
Y
给出全年,使用y
将给出06/02/15
.您也可以使用更长的时间 .
日期将打印日期和时间将打印时间 .
以指定的格式输出当前的GMT . 还有一个localtime()方法 .
这个page有更多细节 .
这就是我最终的目的:
此外,此表是必要的参考,用于选择适当的格式代码,以便按照您希望的方式格式化日期(来自Python "datetime" documentation here) .
以下是我用来获取时间而不必格式化的内容 . 有些人不喜欢split方法,但它在这里很有用:
它将以HH:MM:SS格式打印 .
你可以使用time.strftime():
最快的方法是
时间模块
time
模块提供的函数告诉我们"seconds since the epoch"中的时间以及其他实用程序 .Unix纪元时间
这是您应该获取用于保存数据库的时间戳的格式 . 它是一个简单的浮点数,可以转换为整数 . 它也适用于以秒为单位的算术运算,因为它表示自1970年1月1日00:00:00以来的秒数,并且它是相对于我们下一步要查看的其他时间表示的记忆灯:
此时间戳不考虑闰秒,因此它不是线性的 - 忽略闰秒 . 因此虽然它不等同于国际UTC标准,但它很接近,因此对于大多数记录保存案例来说非常好 .
然而,这对于人类调度来说并不理想 . 如果您希望在某个特定时间点发生未来事件,则需要将该时间存储为可以解析为日期时间对象或序列化日期时间对象的字符串(这些将在后面描述) .
time.ctime
您还可以按照操作系统首选的方式表示当前时间(这意味着它可以在您更改系统首选项时更改,因此不要依赖于此在所有系统中都是标准的,正如我见过其他人所期望的那样) . 这通常是用户友好的,但通常不会导致字符串按时间顺序排序:
您可以使用
ctime
将时间戳水合成人类可读的形式:这种转换也不利于记录保存(除了只能由人类解析的文本 - 并且通过改进的光学字符识别和人工智能,我认为这些情况的数量将减少) .
datetime模块
datetime
模块在这里也很有用:datetime.datetime.now
datetime.now
是一个返回当前时间的类方法 . 它使用time.localtime
而没有时区信息(如果没有给出,否则请参见下面的时区) . 它有一个表示(允许你重新创建一个等效的对象)在shell上回显,但是当打印(或强制转换为str
)时,它是人类可读(和接近ISO)格式,并且词典排序相当于按时间顺序排序:datetime的utcnow
您可以通过以下方式获取UTC时间的日期时间对象(全球标准):
UTC是一个几乎等同于GMT时区的时间标准 . (虽然GMT和UTC不会因夏令时而改变,但他们的用户可能会在暑假期间切换到其他时区,例如英国夏令时 . )
datetime timezone aware
但是,到目前为止我们创建的日期时间对象都不能轻易转换为各种时区 . 我们可以用
pytz
模块解决这个问题:同样地,在Python 3中,我们有
timezone
类,附加了一个utctimezone
实例,这也使得对象时区可以识别(但是转换到另一个时区而没有方便的pytz
模块留给读者的练习):我们看到我们可以轻松地从原始的utc对象转换为时区 .
您还可以使用
pytz
timezonelocalize
方法识别天真的日期时间对象,或者替换tzinfo属性(使用replace
,这是盲目完成的),但这些是最后的度假胜地而不是最佳做法:pytz
模块允许我们识别datetime
对象时区,并将时间转换为pytz
模块中可用的数百个时区 .人们可以表面上将此对象序列化为UTC时间并将其存储在数据库中,但它需要更多的内存并且比仅仅存储Unix Epoch时间更容易出错,我首先证明了这一点 .
其他观看方式时间更容易出错,特别是在处理可能来自不同时区的数据时 . 您希望不存在关于字符串或序列化日期时间对象所针对的时区的混淆 .
如果您正在为用户显示Python的时间,
ctime
可以很好地工作,而不是在表格中(它通常不能很好地排序),但可能在时钟中 . 但是,我个人建议,在Python处理时间时,要么使用Unix时间,要么使用时区感知UTCdatetime
对象 .如果您只想要以ms为单位的当前时间戳(例如,测量执行时间),您还可以使用“timeit”模块:
默认情况下,
now()
函数以YYYY-MM-DD HH:MM:SS:MS
格式返回输出 . 使用以下示例脚本在Python脚本中获取当前日期和时间,并在屏幕上打印结果 . 使用以下内容创建文件getDateTime1.py
.输出如下所示:
这个问题不仅仅是为了它而需要一个新的答案......然而,一个闪亮的新玩具/模块是足够的理由 . 这就是Pendulum library,它似乎做了箭头尝试的那种事情,除了没有固有的缺陷和错误箭头 .
例如,原始问题的答案:
需要担心的是许多需要解决的标准,包括多个RFC和ISO . 曾经混淆了他们;不用担心,请稍微研究一下
dir(pendulum.constants)
然而,那里有比RFC和ISO格式更多的东西 .当我们说当地时,虽然我们的意思是什么?我的意思是:
据推测,其他大多数人都是指其他地方 .
就这样吧 . 长话短说:Pendulum试图为日期和时间做什么请求对HTTP . 值得考虑,特别是它的易用性和广泛的文档 .
datetime.now()
将当前时间作为一个天真的日期时间对象返回,该对象表示本地时区的时间 . 例如,在DST转换期间("fall back"),该值可能是不明确的 . 为避免歧义,应使用UTC时区:或者附加了相应时区信息的时区感知对象(Python 3.2):
做
dir(date)
或包括包的任何变量 . 您可以获得与变量关联的所有属性和方法 .如果你已经使用NumPy,那么你可以直接使用numpy.datetime64()函数 .
仅限日期:
或者,如果您已经使用Pandas,那么您可以使用pandas.to_datetime()函数:
要么:
当您调用ctime()时,它会将秒转换为字符串,格式为'Day Month Date HH:MM:SS Year'(例如:'Wed January 17 16:53:22 2018'),然后调用split()方法将从你的字符串中创建一个列表['Wed','Jan','17','16:56:45','2018'](默认的分隔符是空格) .
括号用于在列表中“选择”想要的参数 .
一个人应该只调用一个代码行 . 一个人不应该像我一样打电话给他们,这只是一个例子,因为在某些情况下你会得到不同的 Value 观,罕见但不是不可能的情况 .
与Harley's answer类似,但使用
str()
函数可以实现快速,简洁,易读的格式:对于此示例,输出将如下所示:
'2013-09-18 11:16:32'
这是strftime的列表 .
使用:
而且只是时间:
有关更多信息,请参见the documentation .
要保存键入,可以从
datetime
模块导入datetime
对象:然后从上述所有内容中删除前导
datetime.
.为什么不问美国海军的官方计时器U.S. Naval Observatory?
如果你住在D.C.地区(像我一样),延迟可能不会太糟糕......
简单易行:
使用
datetime
模块,输出:
OR
使用
time
,输出:
.isoformat()
在文档中,但还没有在这里(这与@Ray Vega的答案相似):您可以使用此功能来获取时间(不幸的是它不说AM或PM):
要获得稍后合并的小时,分钟,秒和毫秒,您可以使用以下功能:
小时:
分钟:
第二:
毫秒:
我想用毫秒来得到时间 . 获得它们的简单方法:
但我想 only milliseconds ,对吗?获得它们的最短途径:
在最后一次乘法中添加或删除零以调整小数点数,或者只是: