日期和时间(datetime模块)
前言:
参考:https://blog.csdn.net/weixin_42232219/article/details/89838580
在 python 中,datetime 是对日期数据进行处理的主要模块。
datetime 是 python 标准库的一部分,这意味着你无须单独安装它。
无论何时你需要用 python 处理日期数据,datetime 都能提供所需方法。
一、datetime模块和类
在 datetime 模块中,最重要也是最常用的对象就是 datetime 类。
datetime 日期时间对象,常用的属性有year, month, day, hour,minute,second,microsecond
date 日期对象, 常用的属性有year,month,day
time 时间对象,hour,minute,second,microsecond
timedelta 时间间隔,即两个时间点之间的长度
二、获取当前日期与格式
2.1获取当前日期时间。年月日时分秒
from datetime import datetime
#获取当前本地时间
a=datetime.now()
print('当前日期:',a) #获取当前世界时间
b=datetime.utcnow()
print('世界时间:',b)
import datetime
now = datetime.datetime.now()
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
microsecond = now.microsecond print("now", now)
print('year', year, 'month', month, 'day', day, 'hour', hour, 'minute', minute, 'second', second, 'microsecond', microsecond)

2.2转化为datetime
参考:https://www.cnblogs.com/qisq/p/7614398.html
from datetime import datetime
d=datetime.strptime('2017/9/30','%Y/%m/%d')
e=datetime.strptime('2017年9月30日星期六','%Y年%m月%d日星期六')
f=datetime.strptime('2017年9月30日星期六8时42分24秒','%Y年%m月%d日星期六%H时%M分%S秒')
g=datetime.strptime('9/30/2017','%m/%d/%Y')
h=datetime.strptime('9/30/2017 8:42:50 ','%m/%d/%Y %H:%M:%S ')
print('d', d)
print('e', e)
print('f', f)
print('g', g)
print('h', h)

2.3格式化日期
| 格式化符号 | 含义 |
| %y | 年份的后两位(00-99) |
| %Y | 四位数的年份表示(0000-9999) |
| %m | 月份(01-12) |
| %d | 月中的第几天(0-31) |
| %H | 24小时制小时数(0-23) |
| %I | 12小时制小时数(01-12) |
| %M | 分钟数(00-59) |
| %S | 秒(00-59) |
| %j | %j 年内的一天(001-366) |
| %U | 一年中的星期数(00-53)星期天为星期的开始 |
| %W | 一年中的星期数(00-53)星期一为星期的开始 |
| %u | ( 1-7),星期一为星期的开始 |
| %w | ( 0-6),星期天为星期的开始 |
| %a | 本地英文简化星期名称 (比如星期二为Tue) |
| %A | 本地英文完整星期名称 (比如星期二为Tuesday) |
| %b | 本地英文简化的月份名称 |
| %B | 本地英文完整的月份名称 |
| %p | 本地A.M.或P.M.的等价符 |
2.4 strftime和strptime
strftime:str-format-time:标准化;将时间转化为字符串格式
strptime:str-parse-time :作句法分析;将字符串转化为时间格式
from datetime import datetime
dt = datetime(2019, 1, 7, 21, 20, 25, 123456)
dt_f1 = dt.strftime('%Y-%m-%d')
dt_f2 = datetime.strftime(dt, '%Y-%m-%d')
dt_p = datetime.strptime(dt_f1, '%Y-%m-%d') print(dt_f1)
print(dt_f2)
print(dt_p)

2.5汉字化日期
from datetime import datetime
dt = datetime(2019, 1, 7, 21, 20, 25, 123456)
s2 = dt.strftime('%Y{Y}%m{m}%d{d}%H{H}%M{H}%S{S}').format(Y='年', m='月', d='日', H='时', M='分', S='秒')
print(s2)

2.6 timedelta
一个timedalta对象代表了一个时间差,当两个date或datetime进行相减操作时会返回一个timedelta对象,或者,我们也可以手动对其进行实例化
class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
只有days是不能超出范围的,否则会抛出OverflowError异常
import datetime dt = datetime.datetime(2019, 1, 7, 00, 20, 25, 123456)
last_day = (dt-datetime.timedelta(days=1)).strftime("%Y-%m-%d")
last_hour = (dt-datetime.timedelta(hours=1)).strftime("%H") print('last_day',last_day)
print('last_hour',last_hour)

2.7 求时间间隔和日期偏移
from datetime import datetime
from datetime import timedelta def date_diff(start_time, end_time):
# 求时间间隔
# 思路 将字符串格式的日期转化为日期格式,相减即可
# %Y-%m-%d为日期格式,其中的-可以用其他代替或者不写,但是要统一,同理后面的时分秒也一样;可以只计算日期,不计算时间。
# start_time=time.strptime(start_time,"%Y-%m-%d %H:%M:%S")
# end_time=time.strptime(end_time,"%Y-%m-%d %H:%M:%S")
start_time = datetime.strptime(start_time, "%Y-%m-%d")
end_time = datetime.strptime(end_time, "%Y-%m-%d")
# 根据上面需要计算日期还是日期时间,来确定需要几个数组段。下标0表示年,小标1表示月,依次类推...
# start_time=datetime.datetime(start_time[0],start_time[1],start_time[2],start_time[3],start_time[4],start_time[5])
# end_time=datetime.datetime(end_time[0],end_time[1],end_time[2],end_time[3],end_time[4],end_time[5])
# start_time = datetime.datetime(start_time[0], start_time[1], start_time[2])
# end_time = datetime.datetime(end_time[0], end_time[1], end_time[2])
# 返回两个变量相差的值,就是相差天数.返回的为数字。
return (end_time - start_time).days # 求偏移时间
def date_offset(date_start, offset):
# 思路:将字符转转化为日期,和offset相加。在转化为字符串
# 此时date_start是字符串格式,offset是int型格式
# 需要将date_start 转换为日期格式
date_start = datetime.strptime(date_start,'%Y-%m-%d').date()
offset = timedelta(days=offset)
# 在将日期格式转化为字符串格式.
# date_end = (date_start + offset).strftime('%Y-%m-%d')
date_end = datetime.strftime(date_start + offset, '%Y-%m-%d')
return date_end diff = date_diff('2019-11-01', '2019-12-09')
date_end = date_offset('2019-11-20', 20) print(diff)
print(date_end)

日期和时间(datetime模块)的更多相关文章
- 【转】Python之日期与时间处理模块(date和datetime)
[转]Python之日期与时间处理模块(date和datetime) 本节内容 前言 相关术语的解释 时间的表现形式 time模块 datetime模块 时间格式码 总结 前言 在开发工作中,我们经常 ...
- Python 日期和时间 —— datetime
Python 日期和时间 —— datetime Python提供了多个内置模块用于操作日期时间,如calendar,time,datetime.calendar用于处理日历相关 :time提供的接口 ...
- Python 标准类库-日期类型之datetime模块
标准类库-日期类型之datetime模块 by:授客 QQ:1033553122 可用类型 3 实践出真知 4 timedelta对象 4 class datetime.timedelta(da ...
- Python之日期与时间处理模块(date和datetime)
本节内容 前言 相关术语的解释 时间的表现形式 time模块 datetime模块 时间格式码 总结 前言 在开发工作中,我们经常需要用到日期与时间,如: 作为日志信息的内容输出 计算某个功能的执行时 ...
- [ Python入门教程 ] Python中日期时间datetime模块使用实例
Python中datetime模块提供强大易用的日期处理功能,用于记录程序操作或修改时间.时间计算.日志时间显示等功能.datatime模块重新封装了time模块,提供的类包括date.time.da ...
- 时间datetime模块
datetime模块 import datetime --时间加减的模块 #返回当前时间 print(datetime.datetime.now()) --2019-09-28 17:22:14.54 ...
- python datatime日期和时间值模块
datetime.time():是一个时间类,这个类接受4个参数,分别代表时,分,秒,毫秒.参数的默认值是为0 #!/usr/bin/env python #coding:utf8 import da ...
- Datetime 模块求日期差
Datetime 模块求日期差 导入 datetime 模块/实例化当前时间对象 调用.date() 方法 得到当前年/月/日时间 实例化时间差对象 delta 求当前日期减去时间差 delta 后的 ...
- 【转】Python 日期和时间
本文转自:http://www.runoob.com/python/python-date-time.html Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Pytho ...
- Python学习(12)日期和时间
目录 Python 日期和时间 时间元组 获取当前时间 获取格式化时间 格式化日历 获取某月日历 Time模块 日历模块 其他相关模块和函数 Python 日期和时间 Python 程序能用很多方式处 ...
随机推荐
- BZOJ 3270: 博物馆 概率与期望+高斯消元
和游走挺像的,都是将概率转成期望出现的次数,然后拿高斯消元来解. #include <bits/stdc++.h> #define N 23 #define setIO(s) freope ...
- memcpy 与strcpy的区别
C/C++中mencpy的代码实现:https://www.cnblogs.com/goul/p/10191705.html C/C++中strcpy的代码实现:https://www.cnblo ...
- HTML5属性备忘单
在网上闲逛的时候看到了文章,感觉总结的这个html5文章,决定转载过来,在排版的时候也帮助自己重新梳理复习一遍.毕竟学习基础最重要. by zhangxinxu from http://www.zha ...
- Git命令的简单整理大全
创建目录和查看路径 mkdir 创建目录 cd 进入到目录里面pwd 用于显示当前的目录cat 查看文件内容 Git命令使用说明 初始化一个目录成git的仓库(版本库)包括暂存区和ma ...
- liunx 一些文件下载上传的命令
xshell 上传 rz sftp 语法: put path/filename.txt Put -r path/文件夹 或者 put “path/filename.txt” Put -r “path/ ...
- mumu 连接安卓studio
近期开发一个项目,折腾了好久,编写完程序后,真机上运行没有异常,而在MuMu模拟器上运行,程序总是中断(MuMu模拟器连接不上,只能打包好apk再放到MuMu上测试,有点蠢萌...),没办法调试,就获 ...
- JVM----Java内存模型与线程
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等 ...
- 忘记Linux 3.X/4.x/5.x 宝塔面板密码的解决方案
进入ssh 输入以下命令重置密码(把命令最后面的 “testpasswd” 替换成你要改的新密码)注:若是debian/ubuntu用户,请使用有root权限的账户去执行这条命令 cd /www ...
- 使用ViewFlipper实现广告信息栏的上下翻滚效果
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gestu ...
- 按二次back键退出程序应用的实现
package com.loaderman.twoexitdemo; import android.os.Bundle; import android.os.Handler; import andro ...