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. Hibernate通过createSQLQuery( )方法实现增删改查

    一.项目结构 二.hibernate核心配置文件:   hibernate.cfg.xm <?xml version="1.0" encoding="UTF-8&q ...

  2. 屏蔽打开文件时提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致。打开文件前请验证文件没有损坏且来源可信。是否立即打开该文 件?”

    修改注册表解决 1.打开注册表编辑器 方法:开始 -> 运行 -> 输入regedit -> 确定 2.找到注册表子项 HKEY_CURRENT_USER\Software\Micr ...

  3. Maven 教程(11)— Maven远程仓库的各种配置

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79545408 1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库 ...

  4. Appium 滑动踩坑记

    前言 对于不同java-client版本,很多的API已经产生大的变化,所以一些API大家会发现已经失效或者使用方式发生了变化,滑动就是其中一项,这篇文章对滑动在不同的java-client版本以及不 ...

  5. HTML基础(一)基本语法知识

    HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </head& ...

  6. linux下杀掉某用户所有进程

    直接删除用户,提示该用户下还有进程,以下两种方法可解决: 1.结束所有username的进程(如果提示没有该命令,那么用下面方法) killall -u username 2.杀死某一用户下的所有进程 ...

  7. 解决www.coursera.org可以登录但无法播放视频

  8. 使用Fiddler抓包、wireshark抓包分析(三次握手、四次挥手深入理解)

    ==================Fiddler抓包================== Fiddler支持代理的功能,也就是说你所有的http请求都可以通过它来转发,Fiddler代理默认使用端口 ...

  9. 【题解】分离与合体 [Loj10151]

    [题解]分离与合体 [Loj10151] 传送门:分离与合体 \([Loj10151]\) [题目描述] 给定一个长度为 \(n\) 的序列,如果从某个点 \(k\) 处将区间 \([l,r]\) 断 ...

  10. - Permission 运行时权限 总结 翻译 MD

    目录 目录 对运行时权限的一些理解 运行时权限使用案例 开源库:PermissionsDispatcher 注解 使用案例 使用步骤 测试代码 自动生成的类 官方文档:请求权限 Add permiss ...