import datetime
from datetime import date
d = datetime.datetime.today() # 获取当前日期和时间
print(type(d), ' : ', d)
date = d.date() # 获取当前日期
print(type(date), ' : ', date)
time = d.time() # 获取当前时间
print(type(time), ' : ', time)
print("现在是 {}".format(d.isoformat()), '备注:日期和时间之间有一个"T"')
print("现在是 {}".format(d.date().isoformat()), "{}".format(d.time().isoformat()))
: 2018-08-21 23:55:59.318226
: 2018-08-21
: 23:55:59.318226
现在是 2018-08-21T23:55:59.318226 备注:日期和时间之间有一个"T"
现在是 2018-08-21 23:55:59.318226
print(type(d.timestamp()), ' : ', d.timestamp()) # 返回时间戳。时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。广泛的运用在知识产权保护、合同签字、金融帐务、电子报价投标、股票交易等方面。
i = 1534865279.522101
date = datetime.date.fromtimestamp(i) # 将时间戳转换为日期形式
print(type(date), ' : ', date)
: 1534866959.318226
: 2018-08-21
print(type(d.year), ' : ', d.year) # 返回date对象的年
print(type(d.month), ' : ', d.month) # 返回date对象的月
print(type(d.day), ' : ', d.day) # 返回date对象的日
print(type(d.weekday()), ' : ', d.weekday()) # 返回weekday,如果是星期一,返回0,如果是星期2,返回1,以此类推
: 2018
: 8
: 21
: 1
print(type(d.isoweekday()), ' : ', d.isoweekday()) # 返回weekday,如果是星期一,返回1,如果是星期2,返回2,以此类推
print(type(d.isocalendar()), ' : ', d.isocalendar(), ', 即返回值是:', d.isocalendar()[0],'年第', d.isocalendar()[1], '周的周', d.isocalendar()[2], '.') # 返回年, 周数, 周几(year, week, weekday)(weekday == isoweekday)
print(type(d.isoformat()), ' : ', d.isoformat()) # 返回格式如'YYYY-MM-DD' 的字符串
: 2
: (2018, 34, 2) , 即返回值是: 2018 年第 34 周的周 2 .
: 2018-08-21T23:55:59.318226
print(type(d.max), ' : ', d.max) # date对象所能表示的最大日期
print(type(d.min), ' : ', d.min) # date对象所能表示的最小日期
print(type(d.resolution), ' : ', d.resolution) # date对象表示日期的最小单位, 是一个时间差类
: 9999-12-31 23:59:59.999999
: 0001-01-01 00:00:00
: 0:00:00.000001
import datetime
print(type(d.toordinal()), ' : ', d.toordinal()) # 返回日期对应的Gregorian Calendar日期(在公历日历中的序数), Gregorian Calendar :一种日历表示方法,类似于我国的农历
print(type(datetime.date(1, 1, 1).toordinal()), ' : ', datetime.date(1, 1, 1).toordinal()) # 这种日历的第一天, 即0001年1月1日为第一天
print(type(datetime.date(9999, 12, 31).toordinal()), ' : ', datetime.date(9999, 12, 31).toordinal()) # 最后一天. 西方人这样设计真是欠考虑, 到时候一定又会出现万年虫的!!! :)
i=736927
date = datetime.date.fromordinal(i) # 将Gregorian Calendar日期转换回date形式
print(type(date), ' : ', date)
: 736927
: 1
: 3652059
: 2018-08-21
print(d)
print(type(d.timetuple()), ' : ', d.timetuple()) # 返回日期对应的time.struct_time对象
"""日期类型d 转为 time.struct_time(tm_year=2017, tm_mon=2, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=43, tm_isdst=-1)"""
print(type(d.timetuple().tm_year), ' : ', d.timetuple().tm_year) # 获取年份
print(type(d.timetuple().tm_mon), ' : ', d.timetuple().tm_mon) # 获取月份
print(type(d.timetuple().tm_mday), ' : ', d.timetuple().tm_mday) # 获取日期
print(type(d.timetuple().tm_hour), ' : ', d.timetuple().tm_hour) # 获取小时
print(type(d.timetuple().tm_min), ' : ', d.timetuple().tm_min) # 获取分钟
print(type(d.timetuple().tm_sec), ' : ', d.timetuple().tm_sec) # 获取秒钟
print(type(d.timetuple().tm_wday), ' : ', d.timetuple().tm_wday) # 获取在一周中的weekday, 0到6 (0是周一)
print(type(d.timetuple().tm_yday), ' : ', d.timetuple().tm_yday) # 获取在一年中的第几天
print(type(d.timetuple().tm_isdst), ' : ', d.timetuple().tm_isdst) # 获取-1, 0, 1, -1是决定是否为夏令时
2018-08-21 23:55:59.318226
: time.struct_time(tm_year=2018, tm_mon=8, tm_mday=21, tm_hour=23, tm_min=55, tm_sec=59, tm_wday=1, tm_yday=233, tm_isdst=-1)
: 2018
: 8
: 21
: 23
: 55
: 59
: 1
: 233
: -1
print(type(d.strftime('%m-%d-%y %H:%M:%S')), ' : ', d.strftime('%m-%d-%y %H:%M:%S')) # 自定义格式化字符串
print(type(d.ctime()), ' : ', d.ctime()) # 自定义格式化字符串
: 08-21-18 23:55:59
: Tue Aug 21 23:55:59 2018
time_delta1 = datetime.date(2018, 8, 20) - datetime.date(2018, 8, 18)
print(type(time_delta1), ' : ', time_delta1)
time_delta2 = datetime.timedelta(seconds=60, minutes=59, hours=23) # 时间间隔
print(type(time_delta2), ' : ' , time_delta2)
datetime_pre = d + time_delta2 # 时间差(提前或推迟)
print(type(d), ' : ' , d)
print(type(datetime_pre), ' : ' , datetime_pre)
: 2 days, 0:00:00
: 1 day, 0:00:00
: 2018-08-21 23:55:59.318226
: 2018-08-22 23:55:59.318226
import calendar
cal = calendar.month(2018, 8)
print(type(cal))
print("2018年8月份日历")
print(cal)
2018年8月份日历
August 2018
Mo Tu We Th Fr Sa Su
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31