在python中,与时间处理相关的模块有 time,datetime,calendar。

时间的两个概念:

UTC(世界协调时):

整个地球分为二十四时区,每个时区都有自己的本地时间。格林威治天文时间(GMT),世界标准时间。在中国为UTC+8,即东八区时间。

时间戳( timestamp):

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。

一、导入 datetime 模块

获得当前时间,datetime.datetime.now()方法

from datetime import datetime
now=datetime.now()
print(now) 输出:
2020-03-01 13:13:42.702864

构建时间类型 datetime.datetime(时间:年-月-日……),输出时间戳 时间.timestamp(),这里的时间是<class ‘datetime.datetime’>类型。

from datetime import datetime
newtime=datetime(2020,1,1,0,0,0) #新建一个时间类型数据
print(newtime)
data=newtime.timestamp() #构建时间戳
print(data) 输出:
2020-01-01 00:00:00
1577808000.0 #1970.1.1 0:0:0 - 2020.1.1 0:0:0 经历的秒数

时间戳转换成 datetime 类型 datetime.datetime.fromtimestamp(时间戳)

# 接上述代码
tm=datetime.fromtimestamp(data)
print(tm) 输出:
2020-01-01 00:00:00

二、时间与字符串

字符串类型转换为datetime 类型

通用格式datetime.datetime.strptime(str,"%Y-%m-%d %H:%M")

from datetime import datetime
str="2020-1-1 0:0"
tm=datetime.strptime(str,"%Y-%m-%d %H:%M")
print(tm) 输出:
2020-01-01 00:00:00

常见时间格式化符号:

格式符 时间格式
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-999
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
datetime 类型转换为字符串类型

时间.strftime("%c"),这里的时间是 <class ‘datetime.datetime’> 类型

from datetime import datetime
tm=ime=datetime(2020,1,2,12,30,0) #时间 2020-1-2 12:30:00
print(tm) print(tm.strftime("%Y-%m-%d")) # 输出年-月-日
print(tm.strftime("%H:%M")) # 输出时间
print(tm.strftime("%A")) # 输出星期
print(tm.strftime("%c")) # 适当日期和时间表示
# 适当日期 适当的时间 表示
print(tm.strftime("%x, %X")) # 日/月/年 时:分:秒 输出:
2020-01-02 12:30:00
2020-01-02 # 输出年-月-日
12:30 # 输出时间
Thursday # 输出星期
Thu Jan 2 12:30:00 2020 # 适当日期和时间表示
01/02/20, 12:30:00 # 日/月/年 时:分:秒

三、时间类型的运算

时间运算需要借助 timedelta 类。

from datetime import datetime,timedelta
now=datetime.now()
print(now)
print(now-timedelta(hours=2)) # 减去两个小时
print(now-timedelta(days=2,hours=2)) # 减去两天,两小时 输出:
2020-03-01 14:08:45.689264
2020-03-01 12:08:45.689264
2020-02-28 12:08:45.689264

更多详情请参考:

python官方文档:datetime类型 https://docs.python.org/3/library/datetime.html

python模块 | 时间处理模块—datetime模块的更多相关文章

  1. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

  2. python五十四课——datetime模块

    3.datetime模块:理解:datetime可以认为是time模块的补充/扩展datetime模块中有一些常用类:datetime类:记录了日期和时间数据信息date类:记录了日期数据信息time ...

  3. python常见模块之time,datetime模块

    一.time模块 time模块提供了一些用于管理时间和日期. time模块中时间的表现形式有三种: format_string  格式化的字符串 struct_time     结构化时间 times ...

  4. Python之时间(time)模块

    在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“type(time.time( ...

  5. python初步学习-import和datetime模块

    模块 一个完整大型的python程序是由模块和包的形式组织起来的,可见模块在python中的重要性.模块是一种组织型式,它许多有关联(关系)的代码组织放到单独的独立文件中.简单的说,可以把模块理解为一 ...

  6. Python标准库笔记(3) — datetime模块

    datetime模块提供了简单和复杂的方式用于操纵日期和时间的类.虽然支持日期和时间运算,但实现的重点是为了输出格式化和操作高效地提取属性. 1. 模块内容 内容 描述 常量   datetime.M ...

  7. python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块

    正则表达式   语法:             mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...

  8. re模块,正则表达式起别名和分组机制,collections模块,time与datetime模块,random模块

    re模块和正则表达式别名和分组机制 命名分组 (1)分组--可以让我们从文本内容中提取指定模式的部分内容,用()来表示要提取的分组,需要注意的是分组 是在整个文本符合指定的正则表达式前提下进行的进一步 ...

  9. 二十三、python中的time和datetime模块

    A.time模块   1. sleep():强制等待 import timeimport datetime print("start to sleep.....")time.sle ...

  10. Python之日期与时间处理模块(date和datetime)

    本节内容 前言 相关术语的解释 时间的表现形式 time模块 datetime模块 时间格式码 总结 前言 在开发工作中,我们经常需要用到日期与时间,如: 作为日志信息的内容输出 计算某个功能的执行时 ...

随机推荐

  1. C#中String StringBuilder

    String和StringBuilder和StringBuffer,这三个都是值得深究一翻的,可能很多人会说,实在不行的话,都全部用StringBuilder,啥事没有,我不能说你的想法事不正确的,但 ...

  2. csv 转换为DBF文件的方法

    转至:https://www.cnblogs.com/hssbsw/archive/2012/12/01/2797140.html csv 转换为DBF文件的方法 最近从SQL导出了许多CSV文件发到 ...

  3. Echarts图表类型

    每个系列通过 type 决定自己的图表类型: type: 'bar':柱状/条形图 type: 'line':折线/面积图 type: 'pie':饼图 type: 'scatter':散点(气泡)图 ...

  4. vue--加载模块详解

    1.postcss-loader.autoprefixer.css-loader .sass-loader:加载css模块及css预处理模块,添加浏览器前缀到CSS内容里 加载模块:npm insta ...

  5. 提升Spring Boot项目中API接口并发能力的一个注解,效果明显

    异步调用几乎是处理高并发Web应用性能问题的万金油,那么什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次 ...

  6. Redis常见延迟问题定位与分析

    Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右.但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头 ...

  7. Java案例——猫与狗(接口版)

    一.需求:对猫跟狗进行训练,加入跳高功能,采用抽象类和接口实现,并创建测试类测试 二.分析: 1.定义接口(Jummping) 成员方法 跳高(): /*定义跳高接口 * */public inter ...

  8. 程序设计基础·Java学习笔记·面向对象(下)

    Java程序设计基础之面向对象(下) (补充了上的一些遗漏的知识,同时加入了自己的笔记的ヾ(•ω•`)o) (至于为什么分P,啊大概是为了自己查笔记方便(?)应该是("` 3′") ...

  9. c++-投骰子

    #include<iostream>#include<cstdlib>//产生随机数的函数using namespace std;enum GameStatus{WIN,LOS ...

  10. Arch Linux 安装 Anbox

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 Anbox 介绍 Anbox 是一个可以在 GNU/Linux 发行版上运行 Android App 的容器,是一个开源兼容层. 其工作原理是在 ...