python - Date and Time

1, timestamp

Timestamp is from the Greenwich time at 0:00:00 on January 1, 1970 (Beijing time at 8:00:00 on January 1, 1970), played a total number of seconds the current time.

Function time.time () to get the current time stamp.

Timestamp is in seconds the float. Suitable for use as addition and subtraction date and time.

For example, two time intervals is calculated, the first two can be converted into time stamp, and then the subtraction.

 

Second, the time tuple

Time tuple struct_time: 9 contains the set of figures, as follows:

Time stamp tuple, can be converted each other formatted time string.

 

Third, the time format

time.strftime (format [, tuple]): The date and time is converted to a tuple format for the format string.

 

import time


# -----------------------------------------
# time时间模块
# -----------------------------------------
# 时间戳
t1 = time.time() # 获取当前时间戳
print("第一个时间戳为:", t1)

t2 = time.time()
print("第二个时间戳为:", t2)

# 计算两个时间的间隔
print("时间差为:{.3f}".format(t2-t1))

# 时间元组
# localtime():将以秒为单位的时间戳转化为本地时间(以时间元组的形式)
t3 = time.time()
st = time.localtime(t3)
# st = time.localtime() #不传入参数,打印出的是当前系统时间
print(st)

# 格式化时间
# 最简单的获取可读时间模式的函数是asctime(),字符串的格式为“星期 月份 日 时:分:秒 年”
print(time.asctime(time.localtime(time.time())))
# print(time.asctime()) #打印出格式为:Sun Jul 21 20:04:04 2019

# ctime()可以把一个时间戳转化为asctime()可视化时间的形式
print(time.ctime(t3)) #打印出的格式与asctime()一致

# strftime()可以使用time模块的strftime方法来格式化日期
print(time.strftime("%Y-%m-%d %A", time.localtime())) # 默认为当前时间
print(time.strftime("%H:%M:%S", time.localtime())) # 24小时制
print(time.strftime("%I:%M:%S", time.localtime())) # 12小时制

# strptime()用于根据指定的格式把一个时间字符串转化为时间元组
print(time.strptime('2018-09-12 16:28:58', '%Y-%m-%d %X'))

# clock()函数返回目前的CPU时间。
# 第一次调用时,返回程序运行的实际时间
print(time.clock())
# 将当前进程置入睡眠状态5秒钟
time.sleep(5)
# 第二次调用时,返回自第一次调用到这一次调用的时间间隔
print(time.clock())

# gmtime()将时间戳转换为代表UTC(格林威治时间)的时间元组,默认为当前时间
secs = 1582414145
print(time.gmtime(secs))
print(time.gmtime())

# mktime()将时间元组转换为时间戳
lt = time.localtime()
print(time.mktime(lt))

 

import calendar


# -----------------------------------------
# calendar日历模块
# -----------------------------------------
# 返回2018年10月日历
cal = calendar.month(2019, 10)
print("输出2019年10月份的日历:")
print(cal)

# 返回2019年的年历
cal1 = calendar.calendar(2019)
print(cal1)

# 判断年份是否为闰年
year = 2020
if calendar.isleap(year):
print("%d年是闰年" % year)
else:
print("%d年不是闰年" % year)

# 设置每周的起始日期码。0(星期一)到6(星期日)
calendar.setfirstweekday(6)
# 返回当前每周起始日期的设置。默认为0星期一
print("每周起始日期码为:", calendar.firstweekday())

# 返回给定日期的日期码,0(星期一)到6(星期日)
print(calendar.weekday(2019, 7, 21))


四、datatime模块
datetime模块提供对日期和时间的各种各样的操作。
datetime模块定义了两个常量:
  MINYEAR: 最小年份,值为1
  MAXYEAR:最大年份,值为9999

datetime模块定义了5个类:
1.date:日期类,常用属性有year、month和day
2.time:时间类,常用属性有hour、minute、second、microsecond和tzinfo
3.datetime:日期和时间的组合类
4.timedelta:时间间隔类,即两个时间点之间的长度
5.tzinfo:时区信息类

import datetime
import time

# -------------------------------------------------------------
# datetime模块定义了5个类:date、time、datetime、timedelta、tzinfo
# -------------------------------------------------------------
# date类
# 返回当前本地时间的date对象
today = datetime.date.today()
print("今天是{}年{}月{}日".format(today.year, today.month, today.day))

# 创建两个日期对象
d1 = datetime.date(2018, 8, 25)
d2 = datetime.date(2018, 9, 18)

# 比较两个日期的大小
d1.__eq__(d2) # 判断两个日期是否相等
d1.__ge__(d2) # 判断d1是否大于等于d2
d1.__gt__(d2) # 判断d1是否大于d2
d1.__le__(d2) # 判断d1是否小于等于d2
d1.__lt__(d2) # 判断d1是否小于d2
d1.__ne__(d2) # 判断d1是否不等于d2

# time类
# 创建一个时间对象
t = datetime.time(10, 28, 32, 680680)
print("{}时{}分{}秒{}微秒".format(t.hour, t.minute, t.second, t.microsecond))

# 同样可以比较两个时间的大小

# max属性表示时间的最大值
print(datetime.time.max) #打印的是:23:59:59.999999
# min属性表示时间的最小值
print(datetime.time.min) #打印的是:00:00:00

# __format__()函数将时间对象以指定的格式转化为字符串
print(t.__format__('%H:%M:%S'))

# datetime类可以看作date类和time类的合体,大部分方法和属性都与这两个类类似
# now()返回当前的日期时间的datetime对象
now = datetime.datetime.now()
print(now)

# time()返回datetime对象的时间部分
print(now.time())

# combine()将一个date对象和一个time对象合并生成一个datetime对象
new_datetime = datetime.datetime.combine(today, now.time())
print(new_datetime)

# timedelta类
# 用于计算两个date或datetime对象的差值
# 计算100天前的时间
delta = datetime.timedelta(days=100)
print(delta)
new_time = now - delta
print(new_time)

# 计算100天后的时间
new_time2 = now + delta
print(new_time2)

# 获取上个月的第一天和最后一天的日期
# 获取当前日期对象
today = datetime.date.today()
print(today)
delta = datetime.timedelta(days=1)

# 获取当月第一天的前面一天,即上个月的最后一天
last_day = datetime.date(today.year, today.month, 1) - delta
print(last_day)

# 再创建个上月第一天的日期对象
first_day = datetime.date(last_day.year, last_day.month, 1)
print(first_day)

# 获取时间差,可以用天数、小时、分钟、秒或微秒不同的单位
start_time = datetime.datetime.now()
time.sleep(6)
end_time = datetime.datetime.now()
print((end_time - start_time).seconds)

# 计算当前时间向后32小时的时间
dt1 = datetime.datetime.now()
dt2 = dt1 + datetime.timedelta(hours=32)
print(dt2) 

Guess you like

Origin www.cnblogs.com/Teachertao/p/11222696.html