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. 分布式事务解决方案(二)消息系统避免分布式事务 & MQ事务消息 & Sagas 事务模型

    参考文档: 如何用消息系统避免分布式事务:http://blog.jobbole.com/89140/ https://www.cnblogs.com/savorboard/p/distributed ...

  2. Kubeadm部署安装kubernetes1.12.1

    1.环境准备(这里是master) CentOS 7.6 两台配置如下,自己更改主机名,加入hosts, master和node 名字不能一样 # hostname master # hostname ...

  3. prometheus、node_exporter、cAdvisor常用参数

    本节将介绍一下我在使用过程中用到的promethues.node_exporter.cAdvisor的常用参数,做一个总结 一.prometheus prometheus分为容器安装和二进制文件安装, ...

  4. Semaphore源码分析

    public class SemaphoreExample1 { ; public static void main(String[] args) throws Exception { Executo ...

  5. nginx返回file not found原因

    nginx返回file not found原因1 确实没有这个文件2 没有权限访问这个网站目录!!!

  6. python 将列表里的字典元素合并为一个字典

    python 将列表里的字典元素合并为一个字典 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn. ...

  7. [转帖]Kubesphere all-in-one 安装方式.

    All-in-One 模式 对于首次接触 KubeSphere 高级版的用户,想寻找一个最快安装和体验 KubeSphere 高级版核心功能的方式,all-in-one 模式支持一键安装 KubeSp ...

  8. 《C程序设计语言》(K&R)中文高清非扫描件

    <C程序设计语言>(K&R)中文高清非扫描件(带书签目录) 对于某下载东西都要C币的网站无爱了.好不容易找了一个,发出来看会不会帮到别人   附上addr:https://pan. ...

  9. 【转载】linux 压缩和解压缩命令gz、tar、zip、bz2

    linux系统下压缩解压缩很让人头大,每次都要查命令.转载下方便以后查阅.原文信息如下: 作者:capecape 来源:CSDN 原文:https://blog.csdn.net/capecape/a ...

  10. Python实现Newton和lagrange插值

    一.介绍Newton和lagrange插值:给出一组数据进行Newton和lagrange插值,同时将结果用plot呈现出来1.首先是Lagrange插值:根据插值的方法,先对每次的结果求积,在对结果 ...