在实际开发中经常遇到时间格式的转换,例如: 前端传递的时间格式是字符串格式,我们需要将其转换为时间戳,或者前台传递的时间格式和我们数据库中的格式不对应,我们需要对其进行转换才能与数据库的时间进行匹配等。

1、将字符串时间转换成时间戳

import time
a = "2019-5-10 20:40:00"
b=time.strptime(a,'%Y-%m-%d %H:%M:%S')#转换为时间组对象
print(b)
*****结果*******
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=10, tm_hour=20, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=130, tm_isdst=-1) 注意:
b=time.strptime(a,'%Y:%m:%d %H:%M:%S') #转换的时间格式要与传递过来的格式保持一致,否则会报错格式不匹配。
报错提示:
ValueError: time data '2019-5-10 20:40:00' does not match format '%Y:%m:%d %H:%M:%S'

将字符串时间转换成时间组后在将其转换成时间戳格式

import time
a = "2019-5-10 20:40:00"
b=time.strptime(a,'%Y-%m-%d %H:%M:%S')
c=time.mktime(b)
print(c) *****结果*******
1557492000.0

得到时间组对象后可以调用其中的tm_year、tm_mon、tm_day、tm_wday等方法得到想要的年月日等信息

import time
a = "2019-5-10 20:40:00"
b=time.strptime(a,'%Y-%m-%d %H:%M:%S')
print(b.tm_year)
print(b.tm_mon)
print(b.tm_wday)#第几个工作日,周一是第0个工作日
print(b.tm_hour)
*****结果*******
2019
5
4
20

2、字符串格式更改,如将 "2019-5-13 20:40:00"更改为"2019:5:13 20:40:00"或者’‘2019/05/13 格式。

先将字符串通过time.strptime转换成时间数组,然后用time.strftime转换成想要的格式。

import time
a = "2019-5-13 20:40:00"
b=time.strptime(a,'%Y-%m-%d %H:%M:%S') #先转换为时间数组,然后转换为其他格式
c=time.strftime('%Y:%m:%d %H:%M:%S',b)
d=time.strftime('%Y/%m/%d ',b)#转换为年月日格式
print(c)
print(d)
****结果****
2019:05:13 20:40:00
2019/05/13

3、获取当前时间并转换成指定格式

 方法一:通过time.time得到时间戳

import time
a = time.time() #时间戳
b=time.localtime(a) #通过time.localtime将时间戳转换成时间组
c=time.strftime("%Y-%m-%d %H:%M:%S", b)#再将时间组转换成指定格式
print(a)
print(b)
print(c)
****结果****
1557493737.3355823
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=10, tm_hour=21, tm_min=8, tm_sec=57, tm_wday=4, tm_yday=130, tm_isdst=0)
2019-05-10 21:08:57

方法二:通过datetime.datetime.now()直接得到当前时间, 然后再用time.strftime进行格式转化

import time,datetime #需要datetime
a = datetime.datetime.now()
b=a.strftime("%Y:%m:%d %H:%M:%S")#再将时间组转换成指定格式,注意:跟第一种时间组转化的区别
print(a)
print(b)
****结果****
2019-05-10 21:14:55.397223
2019:05:10 21:14:55

4、时间戳转换为指定格式日期:

 方法一 :利用localtime()转换为时间数组,然后格式化为需要的格式,如

import time
a=1557493737.3355823
b= time.localtime(a) #将时间戳转换为时间组
c=time.strftime("%Y-%m-%d %H:%M:%S",b)#再将时间组转换成指定格式
print(b)
print(c)
****结果****
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=10, tm_hour=21, tm_min=8, tm_sec=57, tm_wday=4, tm_yday=130, tm_isdst=0)
2019-05-10 21:08:57

方法二:利用datetime对时间戳进行处理,再转换为指定格式

import datetime
a=1557493737.3355823
b= datetime.datetime.utcfromtimestamp(a)
c=b.strftime("%Y-%m-%d %H:%M:%S")
print(b)
print(c)
****结果****
2019-05-10 13:08:57.335582
2019-05-10 13:08:57

5、将3天前的时间转换为指定格式:

方法一:推荐使用

import datetime,time
a=datetime.datetime.now() #获取当前时间
b=(a-datetime.timedelta(days=3))#获取3天前的时间
c=b.strftime("%Y:%m:%d %H:%M:%S")
print(a)
print(b)
print(c)
****结果****
2019-05-10 21:48:22.001840
2019-05-07 21:48:22.001840
2019:05:07 21:48:22
注:timedelta()的参数有:days,hours,seconds,microsecond

方法二:

import datetime,time
a=datetime.datetime.now() #获取当前时间
b=(a-datetime.timedelta(days=3))#获取3天前的时间
c=time.mktime(b.timetuple()) #将时间转换为时间戳
d=time.localtime(c)#将时间戳转换成时间组
e=time.strftime("%Y:%m:%d %H:%M:%S",d)
print(b)
print(c)
print(d)
print(e)
****结果****
2019-05-07 21:34:49.930919
1557236089.0
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=7, tm_hour=21, tm_min=34, tm_sec=49, tm_wday=1, tm_yday=127, tm_isdst=0)
2019:05:07 21:34:49

6、给定时间戳,计算3天前的时间:先转换为datetime 再进行计算:

import datetime,time
a=1557493737.3355823
b=datetime.datetime.utcfromtimestamp(a)
c=(b-datetime.timedelta(days=3))
d=c.strftime("%Y-%m-%d %H:%M:%S")
print(b)
print(c)
print(d)
****结果****
2019-05-10 13:08:57.335582
2019-05-07 13:08:57.335582
2019:05:07 13:08:57

python 时间、日期、时间戳的转换的更多相关文章

  1. python 时间和时间戳的转换

    对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换 ...

  2. Python时间和时间戳互相转换

    # 将时间变成时间戳 def tranftimestamp(stringtime): try: return time.mktime(time.strptime(stringtime, "% ...

  3. python—时间与时间戳之间的转换

    python-时间与时间戳之间的转换 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块 ...

  4. python时间日期字符串各种

    python时间日期字符串各种 第一种 字符串转换成各种日期 time 库 # -*- coding: utf-8 -*- import time, datetime # 字符类型的时间 tss1 = ...

  5. mysql小知识点汇总---(时间与时间戳的转换, 修改mysql用户名密码, navicate 导入sql文件报错 1153)

    1. 时间与时间戳的转换 1.1 时间戳转时间 FROM_UNIXTIME(add_time, '%Y-%m-%d') 1.2 时间转时间戳 UNIX_TIMESTAMP('2015-04-29') ...

  6. Shell日期时间和时间戳的转换

    Gitlab的备份文件是以时间戳显示的,类似:1438624820_gitlab_backup.tar 为了更易于阅读,想把文件名转换成日期格式:2015-08-04_gitlab_backup.ta ...

  7. python 时间与时间戳之间的转换

    https://blog.csdn.net/kl28978113/article/details/79271518 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运 ...

  8. Python时间日期格式化之time与datetime模块总结

    1 引言 在实际开发过程中,我们经常会用到日期或者时间,那么在Python中我们怎么获取时间,以及如何将时间转换为我们需要的格式呢?在之前的开发中,也曾遇到time.datetime等模块下的不同函数 ...

  9. Python时间日期格式化之time与datetime模块

    1 引言 在实际开发过程中,我们经常会用到日期或者时间,那么在Python中我们怎么获取时间,以及如何将时间转换为我们需要的格式呢?在之前的开发中,也曾遇到time.datetime等模块下的不同函数 ...

  10. python时间日期处理

    一.模块介绍: 1.time模块接近操作系统,模块中的大多数函数是调用了所在平台C library的同名函数,部分函数式平台相关的:基于Unix Timestamp,能表述的日期范围被限定在 1970 ...

随机推荐

  1. WEB网页如何让背景图片跟随可视窗口自适应大小

    HTML代码 <body id="body"> <div class="info-wrapper"> <div class=&qu ...

  2. 洛谷 P1784 数独

    题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含1-9,不重复.每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无 ...

  3. BZOJ 4777: [Usaco2017 Open]Switch Grass

    4777: [Usaco2017 Open]Switch Grass Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 46  Solved: 10[Su ...

  4. Android(java)学习笔记117:SharedPreferences(轻量级存储类)

    1.SharedPreferences是Android平台上一个轻量级的存储类,简单的说就是可以存储一些我们需要的变量信息.2个activity 之间的数据传递除了可以他通过intent来传递数据,还 ...

  5. 【转】iOS开发里的Bundle是个啥玩意?!

    初学iOS开发的同学,不管是自己写的,还是粘贴的代码,或多或少都写过下面的代码 [[NSBundle mainBundle] pathForResource:@"someFileName&q ...

  6. 基于 Ubuntu + nextCloud 搭建自己的私人网盘

    提醒一下,如果之前通过apache搭建了网站,不要用snap命令来搭建,否则,至少有一个无法正常运行(不要问我怎么知道的,都是血的教训啊). 你可以通过腾讯云的实验主机进行尝试. 1.基础设置 切换为 ...

  7. k8s1.13.0二进制部署-flannel网络(二)

    Flannel容器集群网络部署 Overlay Network:覆盖网络,在基础网络上叠加的一种虚拟网络技术模式,该网络中的主机通过虚拟链路连接起来.VXLAN:将源数据包封装到UDP中,并使用基础网 ...

  8. Dojo操作dom元素的样式

    1.使用dom-style的set方法,可以直接设置dom元素的样式属性,这和使用dom元素的style属性效果一样. 2.使用dom-class的replace方法可以替换某个dom元素的样式,ad ...

  9. linux文件或文件夹常见操作

    创建文件夹 mkdir [-p] DirName  在工作目录下,建立一个名为 A 新的子目录 : mkdir A  在工作目录下的 B目录中,建立一个名为 T 的子目录:    若 B 目录不存在, ...

  10. Nginx正向代理代理http和https服务

    Nginx正向代理代理http和https服务 1. 背景需求 通过Nginx正向代理,去访问外网.可实现局域网不能访问外网的能力,以及防止在上网行为上,留下访问痕迹. 2. 安装配置 2.1安装 w ...