python中时间日期格式化符号

%Y  年份(4位数表示)
%y 年份(2位数表示)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数
%I 12小时制小时数
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称,如:星期三为Web
%A 本地完整星期名称,如:星期三为Wednesday
%b 本地简化星期名称,如:4月份为Apr
%B 本地完整星期名称,如:4月份为April
%c 本地相应的日期表示和时间表示,如:04/07/10 10:43:39
%j 年内的一天(001-366)
%p AM或PM的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%w 今天在这周的天数(0-6)星期天为星期的开始
%x 本地相应的日期表示,如:09/09/18
%X 本地相应的时间表示,如:11:11:11
%z 与utc时间的间隔(如果是本地时间,返回空字符串)
%Z 时区名称(如果是本地时间,返回空字符串)
%% %号本身

一、time模块

#常用方法
import time
time.sleep(secs) #(线程)推迟指定的时间运行,单位为秒
current_time = time.time() # 获取当前时间戳
print(current_time)

表示时间的三种方式:

  • timestamp(时间戳):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量;运行 type(time.time()),返回的是float类型
  • Format String(格式化的时间字符串):例如 2018-09-09
import time
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 2018-09-09 20:27:11
  • struct_time(结构化时间,用元组表示):struct_time元组共有9个元素;年、月、日、时、分、秒、一年中第几周、一年中第几天、是否是夏令时

import time
# 结构化时间(元组)
print(time.localtime())
# time.struct_time(tm_year=2018, tm_mon=9, tm_mday=9, tm_hour=20, tm_min=38, tm_sec=16, tm_wday=6, tm_yday=252, tm_isdst=0)

总结:

  • 时间戳是计算机能够识别的时间
  • 时间字符串是人能够看懂的时间
  • 结构化时间(元组)则是用来操作时间的

三种时间表示方式的转换:

时间戳 <--> 结构化时间

# 时间戳 --> 结构化时间
# 格式:time.localtime(时间戳)
print(time.localtime(8800000000))
# time.struct_time(tm_year=2248, tm_mon=11, tm_mday=11, tm_hour=4, tm_min=26, tm_sec=40, tm_wday=5, tm_yday=316, tm_isdst=0) # 结构化时间 --> 时间戳
# 格式:time.mktime(结构化时间)
tuple_time = time.localtime(8800000000)
print(time.mktime(tuple_time))
# 8800000000.0

结构化时间 <--> 字符串时间

# 结构化时间 --> 字符串时间
# 格式:time.strftime("字符串对应格式","结构化时间") 结构化时间参数若不传,则显示当前时间
print(time.strftime("%Y-%m-%d", time.localtime(1000000000)))
# 2001-09-09 # 字符串时间 --> 结构化时间
# 格式:time.strptime("时间字符串","字符串对应格式")
print(time.strptime("2001-09-09", "%Y-%m-%d"))
# time.struct_time(tm_year=2001, tm_mon=9, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=252, tm_isdst=-1) 

# 结构化时间  -->  %a %b %d %H:%M:%S %Y
# 格式:time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化字符串
print(time.asctime(time.localtime(1000000000)))
# Sun Sep 9 09:46:40 2001
print(time.asctime(time.localtime()))
# Sun Sep 9 20:58:28 2018 # 时间戳 --> %a %b %d %H:%M:%S %Y
# 格式:time.ctime(时间戳) 如果不传参数,直接返回当前时间的格式化字符串
print(time.ctime(1000000000))
#Sun Sep 9 09:46:40 2001
print(time.ctime())
#Sun Sep 9 21:00:11 2018

二、datatime模块

import datetime

datetime模块中包含如下类

datetime.date       # 表示日期的类。常用的属性有year, month, day。
datetime.time # 表示时间的类。常用的属性有hour, minute, second, microsecond。
datetime.datetime # 表示日期时间。
datetime.timedelta # 表示时间间隔,即两个时间点之间的长度。
datetime.tzinfo # 与时区有关的相关信息。

data类

d = datetime.date(2019, 2, 19)
print(d) # 2019-02-19
print(d.year)
print(d.month)
print(d.day) d = datetime.date.today()
print(d) # 2019-02-19

time类

d = datetime.time(21, 36, 37)
print(d)
print(d.hour)
print(d.minute)
print(d.second)

datatime类

d = datetime.datetime(2019, 2, 19, 21, 36, 37)
print(d) # 2019-02-19 21:36:37 d = datetime.datetime.today() # datetime.datetime.now()
print(d) # 2019-02-19 21:36:37.709934

timedelta类

①获取上个月第一天和最后一天的日期

today = datetime.date.today()
print(today) # 2019-02-19
last_day = datetime.date(today.year, today.month, 1) - datetime.timedelta(1)
print(last_day) # 2019-01-31
first_day = datetime.date(last_day.year, last_day.month, 1)
print(first_day) # 2019-01-01

②计算当前时间向后8个小时的时间

可以计算:天(days)、小时(hours)、分钟(minutes)、秒(seconds)、微秒(microseconds)

d = datetime.datetime.now()
print(d) # 2019-02-19 21:39:54.970777 d = d + datetime.timedelta(hours=8)
print(d) # 2019-02-20 05:39:54.970777

③计算上周一和周日的日期

today = datetime.datetime.today()
today_weekday = today.isoweekday() # 返回weekday,星期一返回0,星期二返回1,以此类推
last_sunday = today - datetime.timedelta(days=today_weekday)
last_monday = last_sunday - datetime.timedelta(days=6)
print(last_sunday.date()) # 2019-02-17
print(last_monday.date()) # 2019-02-11

time、datatime模块的更多相关文章

  1. Python time和datatime模块

    time和datatime模块 时间相关的操作,时间有三种表示方式: 时间戳               1970年1月1日之后的秒,即:time.time() 格式化的字符串    2014-11- ...

  2. Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型)

    Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶软件开发规范 六个目录: #### 对某 ...

  3. python 基础(十五)--time和datatime模块

    time模块 time.time():返回当前时间,时间戳 time.clock():返回cpu时间(?),当有time.sleep()时,time.clock()不计时 time.localtime ...

  4. 时间模块之datatime模块、os模块、sys模块、json模块、json模块实操

    目录 一.模块的绝对导入和相对导入 二.包的概念 三.编程思想的转变 四.软件开发目录规范 五.常见的内置模块 一.时间模块之datatime模块 1.datetime.datetime.today( ...

  5. Python标准库之时间模块time与datatime模块详解

    时间模块time与datatime 时间表示方式: 时间戳 格式化时间字符串 元组 时间戳格式: time.time()#输出1581664531.749063 元组格式: time.localtim ...

  6. 小白的Python之路 day5 time,datatime模块详解

    一.模块的分类 可以分成三大类: 1.标准库 2.开源模块 3.自定义模块 二.标准库模块详解 1.time与datetime 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时 ...

  7. time模块和datatime模块

    一.time模块 time.time() 获取时间戳 time.sleep() 睡几秒 time.gmtime() utc时间元组 time.localtime() 本地时间元组 time.mktim ...

  8. Python之time模块和datatime模块

    import time time.sleep(5) #休眠 time.time() #返回系统时间戳 utc时间秒数 time.ctime() #返回字符串时间格式,也可以传入参数转换为字符串时间ti ...

  9. datatime 模块

    import datetime # 这个是一个包 里面包含 对时间的处理 对日期的处理datetime.date # 日期相关datetime.time # 时间相关 # 获取当前详细时间print( ...

随机推荐

  1. Android与IOS异同点对照(1)------ 显示

    Android与IOS作为当前世界上最流行的两大移动端操作系统,都拥有无数的粉丝. 那么对于Android或者IOS的开发人员来说,这两个系统都拥有什么同样或者不同的地方那?如今让我们一起来了解一下A ...

  2. 2015南阳CCPC H - Sudoku 数独

    H - Sudoku Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny g ...

  3. Ubuntu环境下安装nodejs和npm

    1.安装python-software-properties sudo apt-get install python-software-properties 2.添加ppa curl -sL http ...

  4. P2495 [SDOI2011]消耗战 虚树

    这是我做的第一道虚树题啊,赶脚不错.其实虚树也没什么奇怪的,就是每棵树给你一些点,让你多次查询,但是我不想每次都O(n),所以我们每次针对给的点建一棵虚树,只包含这些点和lca,然后在这棵虚树上进行树 ...

  5. 用vue-cli快速构建项目

    用vue-cli脚手架快速构建项目的过程:1.首先要在node的环境下安装: 1>安装node:https://nodejs.org/en/(带npm,但是npm太慢了,建议安装cnpm,cnp ...

  6. 哈夫曼编码译码系统(c/c++)

    哈夫曼编码译码系统的实现,主要包含三部分: 1.创建哈夫曼树 2.编码函数 3.译码函数 编写代码时为了方便,在这里混用了c++的输入输出流.主体用c语言实现. 下面时代码部分: 1.头文件,以及储存 ...

  7. Gson 转日期中的错误

    今天在用Gson做json转化是遇到一个问题,本地执行没有问题(windows 7),包丢到服务器上(Centos)就报错了. 后经分析发现DateTypeDapter类中取本地环境的日期格式参考ht ...

  8. mybatis 中 foreach 的性能问题及调优

    1.mybatis中最初的sql语句 SELECT 参数1, 参数2, 参数3 FROM 表 WHERE 条件参数1 in <foreach item="item" inde ...

  9. [转]linux之cut命令的用法

    转自:http://www.jb51.net/article/41872.htm cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对“行”来进行分析的,并不是整 ...

  10. 如何学习Unity3D

      如何学习 第一步首先了解unity3d的菜单,视图界面.这些事最基本的基础,可以像学word操作一样,大致能明白有几个菜单,几个基本的视图,各自起什么作用的就可以了. 第二步理解场景里面的坐标系统 ...