需求:拿到指定格式的时间的前一天的时间,如果今天是月初,年初,自动转换,比如:
输入时间是:2019-06-27 23:59:59
输出时间是:2019-06-26 23:59:59

之前用datetime需要各种判断月初,年初等条件,后来想到用给的时间的时间戳直接减去86400,然后在转换成指定的格式即可

话不多说,直接上代码:

def get_yesterdayTime(provided_time):
t_providedTime=time.strptime(provided_time,'%Y-%m-%d%H:%M:%S')
timeStamp=int(time.mktime(t_providedTime))
yesterday_stamp=timeStamp-86400
yesterday=time.strftime('%Y-%m-%d%H:%M:%S',time.gmtime(yesterday_stamp))
return yesterday

得到的结果让我泪奔,居然是2019-06-26 15:59:59

我在想为啥会时间和预期的会不一样,于是我就把当前时间转换成时间戳然后再转换回格式化的时间

def get_yesterdayTime():
#获取昨天的timestamp
yesterday_stamp=int(time.mktime(time.localtime()))-86400
#获取昨天的timetuple
yesterday_t=time.gmtime(yesterday_stamp)
#获取昨天的格式化时间
yesterday=time.strftime('%Y-%m-%d%H:%M:%S',yesterday_t)
return yesterday

得出来的时候比当前时间相差8小时,于是乎我开始每一行代码校验,最终发现time.gmtime出现了问题:

gmtime返回的是一个UTC的时间tuple,而我们是东八区,没事还是得多看看源码。。。

修正后如下:

def get_yesterdayTime():
#获取昨天的timestamp
yesterday_stamp=int(time.mktime(time.localtime()))-86400+28800
#获取昨天的timetuple
yesterday_t=time.gmtime(yesterday_stamp)
#获取昨天的格式化时间
yesterday=time.strftime('%Y-%m-%d%H:%M:%S',yesterday_t)
return yesterday

记一次python时间格式转换遇到的坑的更多相关文章

  1. Python 时间格式转换

    Python time, datetime模块常用方法 1.使用time模块,获取当前时间戳~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~import timetime.time( ...

  2. Python datatime 格式转换,插入MySQL数据库

    Python datatime 格式转换,插入MySQL数据库 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-11-2 ...

  3. SQL Server日期时间格式转换字符串详解 (详询请加qq:2085920154)

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  4. SQL Server日期时间格式转换字符串

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  5. MySQL时间戳和时间格式转换函数

    MySQL时间戳和时间格式转换函数:unix_timestamp and from_unixtime unix_timestamp将时间转化成时间戳格式.from_unixtime将时间戳转化成时间格 ...

  6. Sql日期时间格式转换;取年 月 日,函数:DateName()、DATEPART()

    一.sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007 ...

  7. SQL Server日期时间格式转换字符串详解

    本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...

  8. sql 日期时间格式转换

    Sql日期时间格式转换   sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, ...

  9. [php基础]Mysql日期函数:日期时间格式转换函数详解

    在PHP网站开发中,Mysql数据库设计中日期时间字段必不可少,由于Mysql日期函数输出的日期格式与PHP日期函数之间的日期格式兼容性不够,这就需要根据网站实际情况使用Mysql或PHP日期转换函数 ...

随机推荐

  1. 如何在VMware12中安装centos6.7系统

    一.安装虚拟机,步骤如下: 1.安装好VMware12软件(略过),安装完后点击创建新的虚拟机 2.选择自定义类型安装 3.点击下一步 4.选择稍后安装操作系统,点击[下一步]. 5.客户机操作系统选 ...

  2. RDS数据库磁盘满导致实例锁定

    问题描述: 阿里云RDS空间不足,进行报警.收到报警后.对数据库中不重要的数据备份后执行delete删除操作.执行成功后发现数据删掉了.但是数据库的空间并没有释放.数据占用空间反而越来越大,最后RDS ...

  3. 自己挖的坑跪着也要填完---mapper配置文件和java源文件在同一包下

    本来准备研究下mybatis源码执行流程的,就随意搭建了个项目,所有配置如下: 一切看似都是那么的正常,然而执行的时候:Exception in thread "main" org ...

  4. 一个简易的css reset

    /*css reset*/ /*清除内外边距*/ body, h1, h2, h3, h4, h5, h6, p, hr, /*结构元素*/ ul, ol, li, dl, dt, dd, /*列表元 ...

  5. DFS(一):深度优先搜索的基本思想

    采用搜索算法解决问题时,需要构造一个表明状态特征和不同状态之间关系的数据结构,这种数据结构称为结点.不同的问题需要用不同的数据结构描述. 根据搜索问题所给定的条件,从一个结点出发,可以生成一个或多个新 ...

  6. ajax 前端发含有列表的数据

    在前端页面也可以给后端发送一个包含列表的数据 html <body> <h3>index页面 </h3> <input type="text&quo ...

  7. Python的函数, 返回值, 参数

    1. 函数 函数是对功能的封装 语法: def 函数名(形参): 函数体(代码块,return) 调用: 函数名(实参) 2. 返回值 return:在函数执行的时候, 遇到return 就直接返回, ...

  8. C程序中可怕的野指针

    一.疑问点指针是C语言一个很强大的功能,同时也是很容易让人犯错的一个功能,用错了指针,轻者只是报个错,重者可能整个系统都崩溃了.下面是大家在编写C程序时,经常遇到的一种错误的使用方法,也许在你的学习和 ...

  9. SpringBoot之SpringApplication Explain

    SpringApplication Explain The SpringApplication class provides a convenient way to bootstrap a Sprin ...

  10. hadoop的运行模式

    概述 1)资料查询(官方网址) (1)官方网站: http://hadoop.apache.org/ (2)各个版本归档库地址 https://archive.apache.org/dist/hado ...