datetime是Python处理日期和时间的标准库。
注意到datetime
是模块,datetime
模块还包含一个datetime
类,通过from datetime import datetime
导入的才是datetime
这个类。
我们来看from datetime import datetime
的这个datetime
类吧:
class datetime(date):
"""datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
The year, month and day arguments are required. tzinfo may be None, or an
instance of a tzinfo subclass. The remaining arguments may be ints.
__slots__ = date.__slots__ + time.__slots__
def __new__(cls, year, month=None, day=None, hour=0, minute=0, second=0,
microsecond=0, tzinfo=None, *, fold=0):
year, month, day = _check_date_fields(year, month, day)
hour, minute, second, microsecond, fold = _check_time_fields(
hour, minute, second, microsecond, fold)
_check_tzinfo_arg(tzinfo)
self = object.__new__(cls)
self._year = year
self._month = month
self._day = day
self._hour = hour
self._minute = minute
self._second = second
self._microsecond = microsecond
self._tzinfo = tzinfo
self._hashcode = -1
self._fold = fold
return self
from datetime import datetime
dt = datetime(2020,10,1,11,11)
print(dt)
2020-10-01 11:11:00
把一个datetime
类型转换为timestamp
:
print(dt.timestamp())
1601521860.0
其中,Python的timestamp
是一个浮点数,整数位表示秒。
timestamp转换为datetime
要把timestamp
转换为datetime
,使用datetime
提供的fromtimestamp()
方法:
print(datetime.fromtimestamp(dt.timestamp()))
2020-10-01 11:11:00
datetime转换为str
from datetime import datetime
now = datetime.now()
print(now.strftime('%y-%m-%d %H:%M:%S %A-%B'))
具体字符的含义可以看第一部分列出的日期格式化符号。
20-10-14 09:10:01 Wednesday-October
两个时间差相减
from datetime import datetime
import time
now_time = datetime.now()
timestamp = 1479264792
timeStruct = time.localtime(timestamp)
b_time = time.strftime('%Y-%m-%d %H:%M:%S',timeStruct)
# b_time: 2020-12-08 23:33:35
# time -> datetime
b_time = datetime.strptime(b_time, '%Y-%m-%d %H:%M:%S')
delta = now_time - b_time
print("delta", delta.days, delta)
#print("total seconds", delta.seconds + delta.days*86400)
delta 10 days, 15:51:32.470647
- datetime 模块介绍;
- github datetime源码;
- 廖雪峰 datetime介绍;
import timetimestamp = time.time() #1594475666.4027507#转换成localtimetime_local = time.localtime(timestamp)#转换成新的时间格式(2020-07-11 21:54:26)time.strftime("%Y-%m-%d %H:%M:%S",time_local)
python的时间模块生成时间戳的方法是非常简单的,因为最近频繁用到了时间戳功能,这里简单总结了一下日常使用最为频繁的两个时间模块各自生成当前时间戳的方法,很简单,具体如下:
now_time=str(datetime.datetime.now().strftime('%Y%m%d'))
nowTime=str(time.strftime('%Y%m%d',time.localtime(time.time())))
print 'now_time:',now_time
print 'nowTime:',nowTime
结果如下:
now_time: 20181226
nowTime: 20
Python模块之time模块
一、Mysql 时间类型
在数据库建表的时候,通常有5种字段类型让人选择: TIME、DATE、DATETIME、TIMESTAMP、YEAR。
每种类型的存储空间和时间格式如下:
- TIME类型 :存储空间[3 bytes] - 时间格式[HH:MM:SS] - 时间范围[-838:59:59 到 ~ 838:59:59]
- DATE类型 :存储空间[3 ...
python datetime 与时间戳相互转换首先需要引入的时间相关模块:import time, datetime
from datetime import date, datetime, timedelta字符串时间online_time变为datetime类型online_dt:DT_FORMAT='%Y%m%d %H:%M:%S'
online_time = '20170219 00:
目录一、导入库二、获取当前时间三、datetime的属性四、创建datetime的方法五、string转为datetime六、datetime转为string七、时间戳
一、导入库
from datetime import datetime
二、获取当前时间
from datetime import datetime
t = datetime.now()
print(t)
print(type(t))
运行结果:
2021-04-03 23:42:53.920705
<class 'dateti
print (t) #原始时间数据
print (int(t)) #秒级时间戳
print (int(round(t * 1000))) #毫秒级时间戳
print (int(round(t * 1...
# '2015-08-28 16:43:37.283' --> 1440751417.283
# 或者 '2015-08-28 16:43:37' --> 1440751417.0
def string2timestamp(strValue):
try: ...
关于datetime这个模块,可以说是平时不用的时候大家相安无事,一到用的时候,便会觉得有点混乱了,所以写下本篇文章,留待以后有需要使用,需要注意的是,文中的代码存在一些冗余,有一些代码片段可以替换为其他的格式或者自己自定义的内容,nevermind,总会有一些帮助的。
datetime.datetime -> str
datetime.datetime.now(tz=None)
>>> datetime.datetime(2022, 1, 20, 16, 45, 3
#datetime转成字符串,
#strftime函数就是接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定
def datetime_to_string(dt):
return dt.strftime("%Y-%m-%d-%H") #字符串需要不需要"-",自己定
#字符串转成datetime...
在用Python处理数据时,可能有时候会需要将时间转换成时间戳,或者说将时间戳转换成时间,这里分享一下时间戳与时间的相互转换的方法。在Python里面处理时间相关问题,基本上用的包就是time和datetime两个,这里也是用这两个包实现时间戳和时间的相互转换。
导入需要的包
时间戳转换成时间
在时间戳转换成时间的时候要注意,你的时间戳是秒级别的还是毫秒级别的,如果是毫秒级别的你需要除1...
Python中的datetime和time模块都可以用来获取当前时间,但是它们有一些不同之处。
time模块返回的是一个包含当前时间的时间戳(从1970年1月1日午夜开始的秒数),精确到小数点后的毫秒。而datetime模块返回的是一个包含当前日期和时间的datetime对象,它还可以对日期和时间进行加减、比较和格式化等操作。
另外,datetime模块提供了更多的方法和属性,例如可以使用strftime()方法将datetime对象转换为指定格式的字符串,可以使用timedelta对象对时间进行加减操作等等。
总的来说,如果只是需要获取当前时间的时间戳,可以使用time模块;如果需要对日期和时间进行更多的操作,可以使用datetime模块。