百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

python中时间处理

toyiye 2024-06-21 12:38 10 浏览 0 评论

一、简介

这里介绍python3中时间的处理,常用的时间处理工具模块是time、datetime、calendar。下面将分别介绍。

二、time

文档官网地址:https://docs.python.org/3/library/time.html

引入时间模块:

import time

2.1 时间输出

# 当前时间

now = time.localtime()

# 输出时间元组,如:time.struct_time(tm_year=2019, tm_mon=7, tm_mday=2, tm_hour=15, tm_min=29, tm_sec=4, tm_wday=1, tm_yday=183, tm_isdst=0)

# tm_wday:星期0到6, 0:星期一

# tm_yday:一年中第几天

print('时间各字段:{}'.format(now))

# 时间元组中各元素也可单独获取

print('一年中第几天:{}'.format(now.tm_yday))

# 当前时间的时间戳,单位是秒,如:1562053245.5436401

print('当前时间的时间戳,:{}'.format(time.time()))

2.2 时间格式化输出

# 时间格式化,如:2019-07-02 15:15:57

print('时间格式化:{}'.format(time.strftime('%Y-%m-%d %H:%H:%S', now)))

# 完整星期名称,如:Wednesday

print(time.strftime('完整星期:%A', now))

# 简写星期名称,如:Wed

print(time.strftime('简写星期:%a', now))

# 星期几,0到6,0为星期天, 如:3

print(time.strftime('星期几:%w', now))

# 一年的第几个星期,如:26

print(time.strftime('一年的第几个星期:%W', now))

# 完整月份名称,如:July

print(time.strftime('完整月份名称:%B', now))

# 简写月份名称,如:Jul

print(time.strftime('简写月份名称:%b', now))

# 上午或下午,如:PM

print(time.strftime('上午或下午:%p', now))

2.3 其他形式转时间

# 字符串转时间

print('字符串转时间:{}'.format(time.strptime('2018-07-02 16:16:35', '%Y-%m-%d %H:%M:%S')))

# 时间戳转时间

print('时间戳转时间:{}'.format(time.gmtime(time.time())))

2.4 线程休眠

# 线程休眠,单位秒

time.sleep(1)

三、datetime

文档官网地址:https://docs.python.org/3/library/datetime.html

引入时间模块:

from datetime import datetime, date, time, timedelta

3.1 当前时间或指定时间

# 当前时间

now = datetime.now()

# 当前时间,如:2019-07-09 21:28:43.402596

print('当前时间:{}'.format(now))

# 指定日期,如:2018-01-01 00:00:00

print('指定日期:{}'.format(datetime(2018, 1, 1)))

# 指定日期和时间,如:2018-01-01 21:10:16

print('指定日期和时间:{}'.format(datetime(2018, 1, 1, 21, 10, 16)))

# 输出当前日期,如:2019-07-09

print(date.today())

# 指定日期,如:2019-01-01

print(date(2019, 1, 1))

# 指定时间,如:21:15:16

print(time(21, 15, 16))

3.2 时间字段输出

# 所有字段,包括毫秒,如:2019-07-02 14:11:12.091320

print('当前时间所有字段:{}'.format(now))

# 日期字段,如:2019-07-02

print('日期字段:{}'.format(now.date()))

# 时间字段,如:14:11:12.091320

print('当前时间:{}'.format(now.time()))

# 时间戳,单位是秒,如:1562047872.09132

print('当前时间:{}'.format(now.timestamp()))

# 各个字段,如:year:2019 month:7 day:2 hour:14 minute:11 second:12 microsecond:91320

print('year:{} month:{} day:{} hour:{} minute:{} second:{} microsecond:{}'

.format(now.year, now.month, now.day, now.hour, now.minute, now.second, now.microsecond))

# 星期几,0到6,0是星期一

print('当前时间:{}'.format(now.weekday()))

3.3 字符串和时间互转

# 字符串转时间

print(datetime.strptime('2019-01-10', '%Y-%m-%d'))

# 时间戳转时间

print(datetime.fromtimestamp(now.timestamp()))

# 时间转字符串,如:2019-07-09 21:33:36

print('当前时间:{}'.format(now.strftime('%Y-%m-%d %H:%M:%S')))

3.4 时间修改

# 时间部分字段修改

# 如:2001-01-05 11:09:45.443947

print('时间部分字段修改:{}'.format(now.replace(year=2001, month=1)))

# 如:2001-01-06 11:09:45.443947

print('时间部分字段修改:{}'.format(now.replace(year=2001, month=1, day=now.day + 1)))

# 时间增减操作

diff = timedelta(days=1.5, hours=3)

# 时间增加,如:

print('时间减少:{}'.format(now - diff))

# 时间减少,如:

print('时间增加:{}'.format(now + diff))

# 计算两时间差,datetime相减为timedelta

t1 = now.replace(day=1, second=20, microsecond=10)

t2 = now.replace(year=now.year + 1, day=5, second=45, microsecond=34)

diff = t2 - t1

# diff = t1-t2

# 两时间相差的天数(包含年和天字段)

print('两时间相差的天数(包含年和天字段):{}'.format(diff.days))

# 两时间相差的秒数(仅秒字段比较)

print('两时间相差的秒数(仅秒字段比较):{}'.format(diff.seconds))

# 两时间相差的总秒数

print('两时间相差的总秒数:{}'.format(diff.total_seconds())

四、calendar

引入时间模块:

from datetime import datetime, timedelta

4.1 日历输出

# 指定年份的日历,c:月份间隔 w:日期间隔 l:星期占用行数(间隔)

print(calendar.calendar(2019, c=2, w=1, l=1))

# 指定月份的日历

print(calendar.month(2019, 7))

# 返回列表,列表的每个元素又是单独的列表,单独列表是按周切分的日期,如:[[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, 31, 0, 0, 0, 0]]

print(calendar.monthcalendar(2019, 7))

4.2 日历判断

# 是否闰年,True:是 False:否

print(calendar.isleap(2019))

# 返回开始年(包含)到结束年(不包含)间的闰年数, 如:5

print(calendar.leapdays(2000, 2019))

# 返回元组,第一个元素表示该月第一天是星期几,第二个元素表示该月有多少天,如 (0, 31),0代表2019年7月第一天是星期一,31代表这个月有多少天

print(calendar.monthrange(2019, 7))

# 返回指定日期是星期几,如:3 代表星期四

print(calendar.weekday(2019, 7, 4))

4.3 日历转换

# 时间元组转为时间戳(相反操作可用time.gmtime()),单位秒, 如:1562274616

print(calendar.timegm((2019, 7, 4, 21, 10, 16)))

五、结尾

这里列出关于时间的部分操作,更多操作请查看官网。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码