获取当前时间戳
import time
t = time.time()
print(t) # 获取当前的时间戳
print(int(t)) # 获取整数时间戳
print(int(round(time.time() * 1000))) # 获取毫秒级的时间戳
结果如下:
1621494071.3625572
1621494071
1621494071363
格式化时间
import time
n1 = time.strftime('%Y-%m-%d %H:%M:%S')
print('当前时间格式化:{}'.format(n1))
n2 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1621487655))
print('指定时间格式化:{}'.format(n2))
结果如下:
当前时间格式化:2021-05-20 15:12:52
指定时间格式化:2021-05-20 13:14:15
常用的格式化符号如下
符号 | 含义 | 范围 |
---|---|---|
%y | 两位数的年份表示 | 00 ~ 99 |
%Y | 四位数的年份表示 | 000 ~ 999 |
%m | 月份 | 01 ~ 12 |
%d | 月内中的一天 | 0 ~ 31 |
%H | 24小时制的小时数 | 0 ~ 23 |
%I | 12小时制的小时数 | 01 ~ 12 |
%M | 分钟数 | 00 ~ 59 |
%S | 秒数 | 00 ~ 59 |
def strptime(string: str,
format: str = ...)
常用的格式代码:
%Y 以世纪为单位的十进制数字的年份。
%m 月,作为小数的数字[01,12]。
%d 每月的一天,作为十进制数字[01,31]。
%H 小时(24小时时钟)为小数[00,23]。
%M 分钟为小数点[00,59]。
%S 秒,十进制数字[00,61]。
%z 时区与UTC的偏差。
%a 当地的星期名称缩写。
%A 当地的完整星期名称。
%b 本地语言的月名缩写。
%B 本地语言的完整月份名称。
%c 本地语言的适当日期和时间表示。
%I 小时(12小时时钟)为十进制数字[01,12]。
%p 当地的上午或下午。
格式化时间转时间戳
import time
s = '2021-05-20 13:14:00'
t = time.mktime(time.strptime(s, "%Y-%m-%d %H:%M:%S"))
print(t)
结果如下:
1621487640.0
获取今天日期
import time
import datetime
# 获取当前时间,然后格式化为指定格式
today1 = time.strftime('%Y-%m-%d')
print(today1)
# 获取今天的日期
today2 = datetime.date.today()
print(today2)
结果如下:
2021-05-20
2021-05-20
获取与datetime.now()相关的信息
import datetime
# 当前时间
print(datetime.datetime.now())
# 当前时间(格式化)
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
# 当前日期
print(datetime.datetime.now().date())
# 年
print(datetime.datetime.now().year)
# 月
print(datetime.datetime.now().month)
# 日
print(datetime.datetime.now().day)
结果如下:
2021-05-20 17:44:35.406220
2021-05-20 17:44:35
2021-05-20
2021
5
20
求两个日期的天数差
import datetime
a = datetime.date(2021, 5, 20)
b = datetime.date(2021, 5, 10)
c = a - b
print(c.days)
结果如下:
10
获取当前时间前后的时间
import datetime
# 1小时前
a = datetime.datetime.now() - datetime.timedelta(hours=1)
print('1小时前:', a.strftime('%Y-%m-%d %H:%M:%S'))
# 10分钟之后
b = datetime.datetime.now() + datetime.timedelta(minutes=10)
print('10分钟后:', b.strftime('%Y-%m-%d %H:%M:%S'))
# 一周前
c = datetime.datetime.now() - datetime.timedelta(days=7)
print('一周前:', c.strftime('%Y-%m-%d %H:%M:%S'))
结果如下
1小时前: 2021-05-20 16:34:09
10分钟后: 2021-05-20 17:44:09
一周前: 2021-05-13 17:34:09
注:datetime.timedelta()表示一个时间的长度,通常用作求两个日期或者时间的差值。
获取n年内13号的星期数
P1202 [USACO1.1]黑色星期五Friday the Thirteenth - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
import sys
import time
n=int(sys.stdin.readline())
time.localtime(0)
ans=[0]*7
for i in range(1900,1900+n):
for j in range(1,13):
s = '{:d}{:0>2d}13'.format(i,j)
t = time.strptime(s, "%Y%m%d")
ans[t.tm_wday]+=1
# print(t.tm_wday)
print(*ans[5:],*ans[:5])
(๑•ᴗ•๑)♡ 欢迎回来! (cnblogs.com)
python3 获取两个日期字符串时间段内所有日期集合
# 根据开始日期、结束日期返回这段时间里所有天的集合
def getDatesByTimes(sDateStr, eDateStr):
list = []
datestart = datetime.datetime.strptime(sDateStr, '%Y-%m-%d')
dateend = datetime.datetime.strptime(eDateStr, '%Y-%m-%d')
list.append(datestart.strftime('%Y-%m-%d'))
while datestart < dateend:
datestart += datetime.timedelta(days=1)
list.append(datestart.strftime('%Y-%m-%d'))
return list