# coding=utf-8
import datetime
import time
print ("格式参数:")
print (" %a 星期几的简写")
print (" %A 星期几的全称")
print (" %b 月分的简写")
print (" %B 月份的全称")
print (" %c 标准的日期的时间串")
print (" %C 年份的后两位数字")
print (" %d 十进制表示的每月的第几天")
print (" %D 月/天/年")
print (" %e 在两字符域中,十进制表示的每月的第几天")
print (" %F 年-月-日")
print (" %g 年份的后两位数字,使用基于周的年")
print (" %G 年分,使用基于周的年")
print (" %h 简写的月份名")
print (" %H 24小时制的小时")
print (" %I 12小时制的小时")
print (" %j 十进制表示的每年的第几天")
print (" %m 十进制表示的月份")
print (" %M 十时制表示的分钟数")
print (" %n 新行符")
print (" %p 本地的AM或PM的等价显示")
print (" %r 12小时的时间")
print (" %R 显示小时和分钟:hh:mm")
print (" %S 十进制的秒数")
print (" %t 水平制表符")
print (" %T 显示时分秒:hh:mm:ss")
print (" %u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)")
print (" %U 第年的第几周,把星期日做为第一天(值从0到53)")
print (" %V 每年的第几周,使用基于周的年")
print (" %w 十进制表示的星期几(值从0到6,星期天为0)")
print (" %W 每年的第几周,把星期一做为第一天(值从0到53)")
print (" %x 标准的日期串")
print (" %X 标准的时间串")
print (" %y 不带世纪的十进制年份(值从0到99)")
print (" %Y 带世纪部分的十制年份")
print (" %z,%Z 时区名称,如果不能得到时区名称则返回空字符。")
print (" %% 百分号")
print ("----------------------------------------------------------")
print ("python里使time模块来获取当前的时间")
print ("24小时格式:" + time.strftime("%H:%M:%S"))
print ("12小时格式:" + time.strftime("%I:%M:%S"))
print ("今日的日期:" + time.strftime("%d/%m/%Y"))
print ("----------------------------------------------------------")
print ("使用datetime模块来获取当前的日期和时间")
i = datetime.datetime.now()
print ("当前的日期和时间是 %s" % i)
print ("ISO格式的日期和时间是 %s" % i.isoformat() )
print ("当前的年份是 %s" %i.year)
print ("当前的月份是 %s" %i.month)
print ("当前的日期是 %s" %i.day)
print ("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year) )
print ("当前小时是 %s" %i.hour)
print ("当前分钟是 %s" %i.minute)
print ("当前秒是 %s" %i.second)
常用方法
import datetime
import time
# 日期时间字符串
st = "2020-11-23 16:10:10"
# 当前日期时间
dt = datetime.datetime.now()
# 当前时间戳
sp = time.time()
# 1.把datetime转成字符串
def datetime_toString(dt):
print("1.把datetime转成字符串: ", dt.strftime("%Y-%m-%d %H:%M:%S"))
# 2.把字符串转成datetime
def string_toDatetime(st):
print("2.把字符串转成datetime: ", datetime.datetime.strptime(st, "%Y-%m-%d %H:%M:%S"))
# 3.把字符串转成时间戳形式
def string_toTimestamp(st):
print("3.把字符串转成时间戳形式:", time.mktime(time.strptime(st, "%Y-%m-%d %H:%M:%S")))
# 4.把时间戳转成字符串形式
def timestamp_toString(sp):
print("4.把时间戳转成字符串形式: ", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(sp)))
# 5.把datetime类型转为时间戳形式
def datetime_toTimestamp(dt):
print("5.把datetime类型转为时间戳形式:", time.mktime(dt.timetuple()))
# 1.把datetime转成字符串
datetime_toString(dt)
# 2.把字符串转成datetime
string_toDatetime(st)
# 3.把字符串转成时间戳形式
string_toTimestamp(st)
# 4.把时间戳转成字符串形式
timestamp_toString(sp)
# 5.把datetime类型转外时间戳形式
datetime_toTimestamp(dt)
'''
1.把datetime转成字符串: 2021-01-13 00:06:19
2.把字符串转成datetime: 2017-11-23 16:10:10
3.把字符串转成时间戳形式: 1511424610.0
4.把时间戳转成字符串形式: 2021-01-13 00:06:19
5.把datetime类型转外时间戳形式: 1610467579.0
'''
日期在python中存在time,datetime,时间戳,string四种形式转化 。
时间戳:timestamp,以秒作为单位,在time模块中其所能表述的日期范围被限定在 1970 - 2038 之间。在python当中不做处理获得的时间戳为float类型,整数位为10位,而在JavaScript中的时间戳为13位整数。
time,datetime两个模块,datetime比time的使用更方便一些,datetime不能直接生成时间戳。
string:这里的string就是可视化的时间格式。可以自定义也可以使用默认。
"""
python中时间日期格式化符号:
------------------------------------
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称 # 乱码
%% %号本身
"""
time模块
time() -- 返回时间戳
sleep() -- 延迟运行单位为s
gmtime() -- 转换时间戳为时间元组(时间元组)
localtime() -- 转换时间戳为本地时间对象
asctime() -- 将时间对象转换为字符串
ctime() -- 将使劲按戳转换为字符串
mktime() -- 将本地时间转换为时间戳
strftime() -- 将时间对象转换为规范性字符串
(1)当前时间戳
# 1538271871.226226
time.time()
(2)时间戳 → 时间元组,默认为当前时间
# time.struct_time(tm_year=2018, tm_mon=9, tm_mday=3, tm_hour=9, tm_min=4, tm_sec=1, tm_wday=6, tm_yday=246, tm_isdst=0)
time.asctime(time.localtime())
time.localtime(1538271871.226226)
(3)时间戳 → 可视化时间
# time.ctime(时间戳),默认为当前时间
time.ctime(1538271871.226226)
(4)时间元组 → 时间戳
# 1568276124.0
# time.mktime((2018, 9, 30, 9, 44, 31, 6, 273, 0))
time.mktime(time.localtime())
(5)时间元组 → 可视化时间
# time.asctime(时间元组),默认为当前时间
time.asctime()
time.asctime((2018, 9, 30, 9, 44, 31, 6, 273, 0))
# (6)时间元组 → 可视化时间(可修改时间格式)
# time.strftime(要转换成的格式,时间元组)
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# (7)可视化时间(可修改时间格式) → 时间元祖
# time.strptime(时间字符串,时间格式)
# time.strptime('2018-9-30 11:32:23', '%Y-%m-%d %H:%M:%S')
datetime模块
datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1.
datetime模块定义了5个类,分别是
- datetime.date --表示日期的类。常用的属性有year,month,day
- datetime.time ---表示时间的类。常用的属性有hour,minute,second,microsecond
- datetime.datetime --表示日期时间
- datetime.timedalta --表示时间间隔,即两个时间点之间的长度
- datetime.tzinfo:时区的相关信息
常用的方法
print(datetime.datetime.max) #datetime最大值
print(datetime.datetime.min) #datetime最小值
print(datetime.datetime.resolution) #datetime最小单位
print(datetime.datetime.today()) #返回一个表示当前本地时间
print(datetime.datetime.fromtimestamp(time.time()))#根据给定的时间戮,返回一个datetime对象
print(datetime.datetime.now().year) #取时间对象的年
print(datetime.datetime.now().month) #取时间对象的月
print(datetime.datetime.now().day) #取时间对象的日
print(datetime.datetime.now().replace(2010,6,12))#生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性
print(datetime.datetime.now().timetuple()) #返回给定时间的时间元组/对象
print(datetime.datetime.now().weekday()) #返回weekday,从0开始
print(datetime.datetime.now().isoweekday()) #返回weekday,从1开始
print(datetime.datetime.now().ctime()) #返回给定时间的字符串格式
print(datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M"))#将字符串转换成日期格式
print(datetime.datetime.now().time()) #取给定日期时间的时间
print(datetime.datetime.now() + datetime.timedelta(days=-5))#获取5日前时间
每个类的具体方法
datetime.date --表示日期的类。常用的属性有year,month,day
datetime.time ---表示时间的类。床用的属性有hour,minute,second,microsecond
datetime.datetime --表示日期时间
datetime.timedalta --表示时间间隔,即两个时间点之间的长度
.date类
date类表示日期,构造函数如下:
datetime.date(year,month,day);
year(1-9999)
month(1-12)
day(1-31)
date.today()--返回一个表示当前本地日期的date对象
date.fromtimestamp(timestamp) -- 根据给定的时间戳,返回一个date对象
date.year() -- 取给定时间的年
date.month() -- 取时间对象的月
date.day() -- 取给定时间的日
date.replace() -- 生成一个新的日期对象,用参数指定的年,月, 日代替原有对象中的属性
date.timetuple() -- 返回日期对应的time.struct_time对象
date.weekday() -- 返回week,Monday==0...Sunday == 6
date.isoweekday() -- 返回weekday,Monday == 1...Sunday == 7
date.ctime() -- 返回给定时间的字符串格式
print(datetime.date.today().year) -- 取时间对象的年
print(datetime.date.today().month) --取时间对象的月
print(datetime.date.today().day) --取时间对象的日
print(datetime.date.today().replace(2010,6,12)) --生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性
print(datetime.date.today().timetuple()) 返回给定时间的时间元组/对象
print(datetime.date.today().weekday()) -- 返回weekday,从0开始
print(datetime.date.today().ctime) --返回给定时间的字符串格格式
.tiem类
time类表示时间,由时,分,秒以及微秒组成
time.min() --最小表示时间
time.max() --最大表示时间
time.resolution() -- 微秒
案例:
最大时间
print(datetime.time.max)
最小时间
print(datetime.time.min)
时间最小单位,微秒
print(datetime.time.resolution)
·datetime类
datetime是date与time的结合体,包括date与time的所有信息
datetime.max() --最大值
datetime.min() --最小值
datetime.resolution --datetime最小单位
datetime.today() -- 返回一个表示当前本地时间
datetime.fromtimestamp() --根据给定的时间戳,返回一个datetime对象
datetime.year() --取年
datetime.month() --取月
datetime.day() -- 取日期
datetim.replace() - 替换时间
datetime.strptime() --将字符串转换成日期格式
datetime.time() -- 取给定日期时间的时间