前言:

参考: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对象代表了一个时间差,当两个datedatetime进行相减操作时会返回一个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模块)的更多相关文章

  1. 【转】Python之日期与时间处理模块(date和datetime)

    [转]Python之日期与时间处理模块(date和datetime) 本节内容 前言 相关术语的解释 时间的表现形式 time模块 datetime模块 时间格式码 总结 前言 在开发工作中,我们经常 ...

  2. Python 日期和时间 —— datetime

    Python 日期和时间 —— datetime Python提供了多个内置模块用于操作日期时间,如calendar,time,datetime.calendar用于处理日历相关 :time提供的接口 ...

  3. Python 标准类库-日期类型之datetime模块

    标准类库-日期类型之datetime模块    by:授客 QQ:1033553122 可用类型 3 实践出真知 4 timedelta对象 4 class datetime.timedelta(da ...

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

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

  5. [ Python入门教程 ] Python中日期时间datetime模块使用实例

    Python中datetime模块提供强大易用的日期处理功能,用于记录程序操作或修改时间.时间计算.日志时间显示等功能.datatime模块重新封装了time模块,提供的类包括date.time.da ...

  6. 时间datetime模块

    datetime模块 import datetime --时间加减的模块 #返回当前时间 print(datetime.datetime.now()) --2019-09-28 17:22:14.54 ...

  7. python datatime日期和时间值模块

    datetime.time():是一个时间类,这个类接受4个参数,分别代表时,分,秒,毫秒.参数的默认值是为0 #!/usr/bin/env python #coding:utf8 import da ...

  8. Datetime 模块求日期差

    Datetime 模块求日期差 导入 datetime 模块/实例化当前时间对象 调用.date() 方法 得到当前年/月/日时间 实例化时间差对象 delta 求当前日期减去时间差 delta 后的 ...

  9. 【转】Python 日期和时间

    本文转自:http://www.runoob.com/python/python-date-time.html Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Pytho ...

  10. Python学习(12)日期和时间

    目录 Python 日期和时间 时间元组 获取当前时间 获取格式化时间 格式化日历 获取某月日历 Time模块 日历模块 其他相关模块和函数 Python 日期和时间 Python 程序能用很多方式处 ...

随机推荐

  1. RestFul是啥

    1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...

  2. 计算机HDMI端口与电视机相连

     造冰箱的大熊猫@cnblogs 2019/2/27 打算通过HDMI接口将计算机桌面投影到电视机上,结果遇到问题,折腾了好一阵才搞定.现将这些问题记录下来 1.设备环境 计算机:使用Ubuntu 1 ...

  3. 状压dpHDU - 4856

    J - Tunnels HDU - 4856 题目大意:地图上有些管道,在管道行走里不需要花费时间,但从一个管道的出口走到另一个管道的入口则需要花费时间,问走完所有管道最短的时间,如果不行,则输出-1 ...

  4. ngx_http_auth_request自用

    server { listen 80; server_name www.php12.cn php12.mama1314.com; root /var/www/shf; location / { ind ...

  5. JS将后台获取毫秒数转换为自定义格式日期

    重写prototype  Date.prototype.Format = function(fmt) { var o = { "M+" : this.getMonth()+1, / ...

  6. Qt加载本地字体 .ttc或.ttf

    版权声明:支持原创,转载请说明~ https://blog.csdn.net/luoyayun361/article/details/54934437 //设置本地字体,黑体简 int fontId ...

  7. Java-synchronized 中锁的状态及其转换

    synchronized 锁的优化过程:无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁 一.不同锁对象的状态表示(需要了解 Java 对象头) https://wiki.open ...

  8. ValueStack对象

    ValueStack, 即值栈对象. 值栈对象: 是整个struts数据存储的核心,或者叫中转站. 用户每次访问struts的action,都会创建一个Action对象.值栈对象.ActionCont ...

  9. redis复制集

    应用场景:复制集作用的场景问题: 1.解决单点故障 2.读写分离 1.准备两台redis服务器 a) 一台做为注服务器,一台做为从服务器 b) 在从服务器中的redis.conf文件中添加 repli ...

  10. 判断是否为日期格式 与 判断是否为BigDecimal

    import java.text.ParseException;import java.text.SimpleDateFormat; /** * * 说明:判断是否为日期格式 * @param str ...