python中时间的表示方式 unix时间戳,字符串时间,格式化时间

时间模块有,time,datetime,calendar

#time模块

import time
#获取本地时间戳,返回浮点数
print(time.time()) #1566201346.1516223 #获取结构化时间
time.gmtime([时间戳]) ##,不传时间戳默认为当前UTC时间
print(time.gmtime()) #time.struct_time(tm_year=2019, tm_mon=8, tm_mday=19, tm_hour=7, tm_min=56, tm_sec=39, tm_wday=0, tm_yday=231, tm_isdst=0)
time.localtime([时间戳])#不传时间戳默认为当前本地时间
print(time.localtime()) #time.struct_time(tm_year=2019, tm_mon=8, tm_mday=19, tm_hour=15, tm_min=58, tm_sec=53, tm_wday=0, tm_yday=231, tm_isdst=0)
#将结构化时间转为时间戳
time.mktime(结构化时间)
print(time.mktime(time.localtime())) #1566201588.0 #字符串时间
#time.asctime([结构化时间]) #不传参默认值为time.localtime()
print(time.asctime(time.localtime())) #Mon Aug 19 16:01:26 2019
time.ctime([时间戳]) #不传参默认值为time.time()
print(time.ctime()) #Mon Aug 19 16:08:18 2019 #结构化时间转换为字符串时间
#time.strftime('时间格式'[,结构化时间]),结构化时间默认值为time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S')) #2019-08-19 16:11:47
print(time.strftime('%Y-%m-%d %X')) #2019-08-19 16:13:15

#字符串时间转化为格式化时间
#time.strptime('字符串时间'[,时间格式])
#时间格默认值为 %a %b %d %H:%M:%S %Y
#字符串时间必须和时间格式对应
print(time.strptime('Thu Jun 28 10:10:10 2018')) #time.struct_time(tm_year=2018, tm_mon=6, tm_mday=28, tm_hour=10, tm_min=10, tm_sec=10, tm_wday=3, tm_yday=179, tm_isdst=-1)
print(time.strptime('2019-08-19 16:18:10','%Y-%m-%d %H:%M:%S')) #time.struct_time(tm_year=2019, tm_mon=8, tm_mday=19, tm_hour=16, tm_min=18, tm_sec=10, tm_wday=0, tm_yday=231, tm_isdst=-1) #指定程序暂停运行时间
#time.sleep(secs):程序暂停运行指定的秒数
time.sleep(5) #程序暂停运行五秒

时间关系转换图

#datetime模块

相比于time模块,datetime模块的结构则更直观、更容易调用
datetime模块定义了5个类,分别是
datetime.date:表示日期的类
datetime.time:表示时间的类
datetime.datetime:表示日期时间的类
datetime.timedelta:表示时间间隔,即两个时间点的间隔
datetime.tzinfo:时区的相关信息
from datetime import datetime
#datetime.datetime (year, month, day, hour , minute , second)
#返回表示今天本地时间的datetime对象
print(datetime.today()) #2019-08-19 16:26:06.777756
#返回表示当前本地时间的datetime对象
print(datetime.now()) #2019-08-19 16:28:25.854710
#根据时间戮创建一个datetime对象
print(datetime.fromtimestamp(time.time())) #2019-08-19 16:29:44.365201 #datetime对象操作
dt = datetime.now()
print(dt.date()) #2019-08-19
print(dt.time()) #16:33:38.263579
#返回替换后的datetime对象
print(dt.replace(year=2022,month=9,day=10)) #2022-09-10 16:35:39.721526
#按指定格式返回datetime对象
print(dt.strftime('%Y/%m/%d %H:%M:%S')) #2019/08/19 16:37:38

#datetime.timedelta

timedelta主要用来实现时间的运算
使用timedelta可以很方便的在日期上做天,小时,分钟,秒的时间计算,如果要计算月份则需要另外的办法
from datetime import datetime,timedelta

dt = datetime.now()
dt1 = dt + timedelta(days=-1) #昨天
dt2 = dt - timedelta(days=1) #昨天
dt3 = dt + timedelta(days=1) #明天
dt4 = dt + timedelta(hours=10) #10小时后
print(dt1,dt2,dt3,dt4)
#2019-08-18 16:44:27.535715 2019-08-18 16:44:27.535715 2019-08-20 16:44:27.535715 2019-08-20 02:44:27.535715 print(dt + timedelta(days=10,hours=100,minutes=100,seconds=100,milliseconds=100,microseconds=100))
#2019-09-02 22:28:49.705085

#calendar模块

import calendar
#获取指定年份的日历字符串
print(calendar.calendar(2019))
#获取指定月份的日历字符串
print(calendar.month(2019,8))
August 2019
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
#以列表形式返回每个月的总天数
print(calendar.mdays)
#[0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
#返回指定月份的第一是周几以及每月的总天数
print(calendar.monthrange(2020,9))
(1, 30)

#一些习题

#第一题:打印出当前距2019年8月1日有多少天多少小时多少分多少秒
from datetime import datetime
import calendar
#两个日期之间的差为
cha=datetime(2019,8,1)-datetime.now()
# print(cha)
#相差的天数
days=cha.days
#方法一:
#将cha分割成列表
cha_list1=str(cha).split()
cha_list2=cha_list1[2].split(':')
# print(cha_list2)
print("相差%d天%d小时%d分%d秒"%(days,int(cha_list2[0]),int(cha_list2[1]),int(cha_list2[2][:2])))
#相差小时数 #方法二:
#所剩余秒数为
remain_seconds=cha.seconds
#print(remain_seconds)
#相差的小时数
hours=remain_seconds//3600
#相差的分钟数
minutes=remain_seconds%3600//60
#相差的秒数
seconds=remain_seconds%60
print("相差%d天%d小时%d分%d秒"%(days,hours,minutes,seconds)) #输出
相差-19天6小时54分8秒
相差-19天6小时54分8秒
#第二题:打印出20个月之后的日期
#当前的时间为
#cur=datetime.now()
def getDate(cur,m):
#当前年
year=cur.year
#当前月
month=cur.month
#当前日
day=cur.day #print(year,month,day)
#算出20个月的year month day
#总的月数
total_month=m+month
#需要增加的年数
y_plus=total_month//12 #新的月份
new_month=total_month%12 #0 1 2 .....11 #判断新的月份为0的情况
if new_month==0:
y_plus-=1
new_month=12 #判断当前的天数是否大于新的月份的总天数,如果比新月份总天数大,则把月份加1,再算出新的天数
#新月份的总天数
mdays=29 if new_month==2 and calendar.isleap(year+y_plus) else calendar.mdays[new_month]
if mdays<day:
#new_month+=1
#新的天数
day=mdays #20个月之后的日期 2018
new_date=cur.replace(year=year+y_plus,month=new_month,day=day)
print(new_date) #输出
2021-04-19
打印出现在时间(字符串)
print(datetime.today()) #2019-08-17 16:45:34.339610
print(datetime.now()) #2019-08-17 16:45:34.339609
print(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) #2019-08-21 12:26:19
打印出指定格式的日期  2018年5月7日 星期六 08:01:02
def get_week(w):
if w=='':
week='星期一'
elif w=='':
week='星期二'
elif w=='':
week='星期三'
elif w=='':
week='星期四'
elif w=='':
week='星期五'
elif w=='':
week='星期六'
else:
week='星期日'
return week # 字符串转换为格式化,拿到星期几
s_time=time.strptime('2018-05-07 08:01:02','%Y-%m-%d %H:%M:%S')
w1=time.strftime("%w",s_time)
# 指定格式输出
print(time.strftime("%Y{}%m{}%d{} {} %H:%M:%S",s_time).format('年','月','日',get_week(w1)))
###2018年05月07日 星期一 08:01:02
打印出当前距离指定时间差多少天,多少时,多少分,多少秒
from datetime import timedelta
def cha(year,month,day):
a=datetime(year,month,day)-datetime.now()
print('当前时间距%s年%s月%s日还有%s天%s时%s秒'%(year,month,day,a.days,a.seconds//3600,a.seconds%60))
cha(2021,3,1)##当前时间距2021年3月1日还有559天8时22秒
一、有一个人从2015-01-01开始过上了三天打渔两天晒网的日子,问今天该打渔还是晒网?明年的今天呢
from datetime import datetime
def dy_sw(year,month,day):
dt = datetime(year,month,day)-datetime(2015,1,1)
if dt.days%5<3:
print('打渔')
else:
print('晒网')
dy_sw(2019,8,23) #输出
打渔

done。

Python时间模块。的更多相关文章

  1. 浅谈Python时间模块

    浅谈Python时间模块 今天简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用.希望这篇文章对于学习Python的朋友们有所帮助 ...

  2. python时间模块-time和datetime

    时间模块 python 中时间表示方法有:时间戳,即从1975年1月1日00:00:00到现在的秒数:格式化后的时间字符串:时间struct_time 元组. struct_time元组中元素主要包括 ...

  3. python 时间模块 -- time

    time 时间模块 和时间有关系的我们就要用到时间模块.在使用模块之前,应该先导入模块. # 常用方法 import time print("现在执行我") time.sleep( ...

  4. python 时间模块小结

    python有两个重要的时间模块,分别是time和datetime time模块 表示时间的几种方法 时间元组 time.struct_time( tm_year=2016, tm_mon=7, tm ...

  5. Python时间模块datetime用法

    时间模块datetime是python内置模块,datetime是Python处理日期和时间的标准库. 1,导入时间模块 from datetime import datetime 2,实例 from ...

  6. python时间模块time,datetime

    时间模块time.datetime 模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默 ...

  7. python时间模块time

    时间模块 时间模块主要处理和时间相关的事件,我们可以通过模块获取不同数据类型的时间以便我们需求. 表现时间的三种方式: 在pythn中表现时间的方式主要有三种:时间戳(stamptime).元祖时间( ...

  8. python——时间模块

    格式化时间字符串 %y 两位数的年份表示(00-99) %Y 四位数的年份表示(0000-9999) %m 月份(01-12) %d 月内的一天(0-31) %H 24小时制的小时数(0-23) %I ...

  9. Python—时间模块(time)和随机模块(random)

    时间模块 time模块 获取秒级时间戳.毫秒级时间戳.微秒级时间戳 import time t = time.time() print t # 原始时间数据 1574502460.90 print i ...

随机推荐

  1. Circos图

    Circos官网   http://circos.ca 在线绘图工具    http://mkweb.bcgsc.ca/tableviewer/visualize/ Circos图的诞生 Circos ...

  2. UDF——监测指定点的物理量

    Fluent版本:2019 R1 Visual Studio版本:Visual Studio 2013 其他版本应该也是适用的 算例来源于:https://confluence.cornell.edu ...

  3. 安装-supervisor

    centos 7.xx 1.#yum install python-setuptools 2.#easy_install supervisor 3.# vim /etc/supervisord.con ...

  4. libevent笔记4:Filter_bufferevent过滤器

    Filter_bufferevent是一种基于bufferevent的过滤器,其本身也是一个bufferevent.能够对底层bufferevent输入缓存区中的数据进行操作(加/解密等)后再读取,同 ...

  5. 你真的了解java的lambda吗?- java lambda用法与源码分析

    你真的了解java的lambda吗?- java lambda用法与源码分析 转载请注明来源:cmlanche.com 用法 示例:最普遍的一个例子,执行一个线程 new Thread(() -> ...

  6. button 在chrome浏览器下被点击时会出现一个橙色的边框

    问题描述: button在chrome浏览器下被点击时会出现一个橙色的边框 在button上添加 :focus{outline:none;}也无法解决. 解决办法: 在button上添加 :focus ...

  7. Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

  8. Maven 教程(9)— Maven坐标详解

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79544532 Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种j ...

  9. Jenkins-slave 镜像集成 docker 和 kubectl

    1.说明 对官方的 jenkins/jnlp-slave 镜像集成 docker 和 kubectl 命令. 2.Dockerfile 文件 该镜像底层采用的是 Debian 系统,先更改下载源,然后 ...

  10. 更新Linux内核

    说明:为了安装Docker,当前虚拟机不满足要求,版本如下: [root@localhost116 ~]# uname -r -.el6.x86_64 [root@localhost116 ~]# c ...