资讯专栏INFORMATION COLUMN

python日期时间处理总结

DoINsiSt / 2066人阅读

摘要:用了一段时间的开发项目,也是第一次用来开发项目,所有有许多相关的知识点需要总结,本文所介绍的的日期时间处理就是最近用到的,希望对各位有所帮助,也同时作为自己的笔记储存。提供了等模块用于处理日期和时间,较为常用的还是模块。

用了一段时间的django开发web项目,也是第一次用python来开发项目,所有有许多相关的知识点需要总结,本文所介绍的python的日期时间处理就是最近用到的,希望对各位有所帮助,也同时作为自己的笔记储存。

Python 提供了time、 calendar、datetime 等模块用于处理日期和时间,较为常用的还是datetime模块。

时间间隔是以秒为单位的浮点小数。

每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

python中时间日期格式化符号:

%y 两位数的年份表示(00-99)

%Y 四位数的年份表示(000-9999)

%m 月份(01-12)

%d 月内中的一天(0-31)

%H 24小时制小时数(0-23)

%I 12小时制小时数(01-12)

%M 分钟数(00=59)

%S 秒(00-59)

%a 本地简化星期名称

%A 本地完整星期名称

%b 本地简化的月份名称

%B 本地完整的月份名称

%c 本地相应的日期表示和时间表示

%j 年内的一天(001-366)

%p 本地A.M.或P.M.的等价符

%U 一年中的星期数(00-53)星期天为星期的开始

%w 星期(0-6),星期天为星期的开始

%W 一年中的星期数(00-53)星期一为星期的开始

%x 本地相应的日期表示

%X 本地相应的时间表示

%Z 当前时区的名称

%% %号本身

calendar

获取年历

# 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c
calendar.calendar(2017)

获取日历

# 获取2017年11月日历
>>> print calendar.month(2017, 11)
   November 2017
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

获取一周一行的月日历

# 获取2017年11月周日历集合
>>> print calendar.monthcalendar(2017,11)
[[0, 0, 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, 0, 0, 0]]

获取日期为星期几

# 获取2017年11月11日是星期几(0-6代表星期一到星期日)
>>> print calendar.weekday(2017,11,11)
5

datetime

获取当前日期时间

# 获取当前时间(datetime类型)
>>> print datetime.datetime.now()
2017-11-11 17:21:56.076882
# 获取当前日期
>>> print datetime.datetime.now().date()
2017-11-11
>>> print datetime.date.today()
2017-11-11
# 获取当前时间的字符串
>>> print datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
"2017-11-11 17:21:56"

获取当前日期的后几天/前几天

# 获取明天
>>> print datetime.date.today() + datetime.timedelta(days=1)
2017-11-12
>>> print datetime.date.today() + datetime.timedelta(1)
2017-11-12
# 获取昨天
>>> print datetime.date.today() - datetime.timedelta(days=1)
2017-11-10
>>> print datetime.date.today() - datetime.timedelta(1)
2017-11-10

获取本周/本月最后一天及第一天

>>> today = datetime.date.today()
# 获取本周第一天
>>> print today - datetime.timedelta(today.weekday())
2017-11-06
# 获取本周最后一天
>>> print today + datetime.timedelta(6-today.weekday())
2017-11-12
# 获取本月第一天
>>> print datetime.date(today.year, today.month, 1)
2017-11-01
# 获取本月最后一天
>>> first_day_weekday, last_day_num = calendar.monthrange(today.year, today.month)
>>> print datetime.date(today.year, today.month, last_day_num)
2017-11-30

获取当天最小时间/最大时间

# 获取当天最小时间
>>> print datetime.datetime.combine(datetime.date.today(), datetime.time.min)
2017-11-11 00:00:00
# 获取当天最大时间
>>> print datetime.datetime.combine(datetime.date.today(), datetime.time.max)
2017-11-11 23:59:59.999999

time

获取当前时间戳

>>> print time.time()
1510396655.7

获取本地时间

>>> print time.localtime(time.time())
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=11, tm_hour=18, tm_min=13, tm_sec=57, tm_wday=5, tm_yday=315, tm_isdst=0)

获取格式化时间

# 格式化成%Y-%m-%d %H:%M:%S形式
>>> print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
2017-11-11 18:58:39
# 格式化成%a %b %d %H:%M:%S %Y形式
>>> print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) 
Mon Nov 11 18:58:40 2017
# 将格式字符串转换为时间戳
>>> format_time = time.strptime("2017-11-11 18:58:39", "%Y-%m-%d %H:%M:%S") 
>>> print time.mktime(format_time)
1510396712.0


各个时间格式之间的转换

datetime <=> date

# datetime=> date
>>> print datetime.datetime.now().date()
2017-11-11
# date => datetime
>>> today = datetime.date.today()
>>> print datetime.datetime.combine(today, datetime.time.min)
2017-11-11 00:00:00

datetime <=> timestamp

# datetime => timestamp
>>> print time.mktime(datetime.datetime.now().timetuple())
1510396755.0
# timestamp => datetime
>>> print datetime.datetime.fromtimestamp(1510396755.0)
2017-11-11 18:39:15

datetime <=> string

# datetime => string
>>> print datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
2017-11-11 18:39:15
# string => datetime
>>> print datetime.datetime.strptime("2017-11-11 18:39:15", "%Y-%m-%d %H:%M:%S")
2017-11-11 18:39:15

datetime <=> timetuple

# datetime => timetuple
>>> print datetime.datetime.now().timetuple()
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=11, tm_hour=18, tm_min=50, tm_sec=57, tm_wday=5, tm_yday=315, tm_isdst=0)
# timetuple => datetime
>>> time_tuple = datetime.datetime.now().timetuple()
>>> print datetime.datetime.fromtimestamp(time.mktime(time_tuple))
2017-11-11 18:50:35

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44485.html

相关文章

  • 如何使用Python优雅地处理时间数据

    摘要:最要命的是,在标准库中居然有两个模块处理时间,一个叫,另外一个叫,里面提供了类似的方法但是两个完全不是一回事。到这还没完,标准库里还有一个叫的模块,也是用来处理时间的。今天的主角是一个优雅到我不能放弃的时间处理库。 缘起 很多时候我们不得不和时间打交道,但在Python标准库中处理时间的模块其实设计的不是很友好,为什么我会这么说?因为我相信大部分人几乎每次在处理时间数据时一而再,再而三...

    draveness 评论0 收藏0
  • 如何使用Python+SeaTable实现计算两个工作日天数

      小编写这篇文章的一个主要目的,主要是用来给大家继续讲解关于python的一些实例,比如综合运用Python+SeaTable,运用这个技能,可以实现相关的一些计算技能。比如可以实现连续性的计算两个工作日天数,下面给大家详细解答下。  当我们计算两个日期间的间隔天数时,通常是用结束日期减去开始日期,但在实际的项目管理、任务管理、工作计划等场景中,某些时间段会涉及双休日、法定节假日,甚至还有公司自...

    89542767 评论0 收藏0
  • 教你用python日期中获取年、月、日和星期等30种信息

      Python的作用还是比较的广泛的,在日常生活中,应用范围也比较的广泛,比如,我们可以去利用python,以此来获取年月日等相关的一些信息,具体的内容是什么呢?下面就给大家详细的解答下。  这次介绍日期数据处理。  用python中的方法对日期数据进行处理,我们可以获取很多有用的信息,比如年月日,星期,周次,季度等,这里分享工作和数据竞赛30余种常用的转换方法。  1计算日期的年月日时分秒,星...

    89542767 评论0 收藏0
  • Python中的对日期时间处理

    摘要:中提供了一个和的模块可以用来做格式化日期和时间的。格式化日期通过模块中方法来格式化日期函数接收时间元组并返回以可读字符串表示薪资的时间格式的话由参数决定。每日宽度间隔为字符每行的长度为是每星期的行数。 我们可以通过学习在Python中对日期时间的处理,可以在快速的完成工作,比如: 将日期时间作为日志信息的内容输入 计算某一个功能的执行时间 用日期命名一个文件的名称 记录或者展示文件的...

    techstay 评论0 收藏0
  • Python标准库 时间日期的区别 (time, datetime包)

    摘要:包包基于语言的库函数。的解释器通常是用编写的,的一些函数也会直接调用语言的库函数。是指年月日构成的日期相当于日历,是指时分秒微秒构成的一天小时中的具体时间相当于手表。如果对时间有比较繁琐的操作时,可以尝试使用包。 time包 time包基于C语言的库函数(library functions)。Python的解释器通常是用C编写的,Python的一些函数也会直接调用C语言的库函数。 im...

    ingood 评论0 收藏0

发表评论

0条评论

DoINsiSt

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<