Python基础学习之时间转换函数用法详解


Posted in Python onJune 18, 2019

本文实例讲述了Python基础学习之时间转换函数用法。分享给大家供大家参考,具体如下:

前言

python的时间格式分为多种,几种格式之间的转换方法时常是我们遇到的而且是经常忘记的点,python不像php,时间字符串和datetime是一起的,只需要strtotime和date函数就可以相互转化。虽然网上已经有很多python时间转换的文章,但是由于作者本人经常做海外业务,需要各种时区之间的转换,所以这篇文章会对按时区转换各种时间格式做一个总结。

转换方法图示(图片转自网络):

Python基础学习之时间转换函数用法详解

一、字符串转时间戳

1、默认:

import time
def time_str_to_timestamp(string_time, _format="%Y-%m-%d %H:%M:%S"):
  return int(time.mktime(time.strptime(string_time, _format)))

2、按时区转:

import time
import datetime
from pytz import timezone as tz
def time_str_to_timestamp_by_timezone(string_time, _format="%Y-%m-%d %H:%M:%S”, from_tz=“UTC”, to_tz="America/Los_Angeles"):
  from_tz = tz(from_tz)
  to_tz = tz(to_tz)
  return int(time.mktime(
    datetime.datetime.strptime(string_time, _format).replace(
      tzinfo=from_tz).astimezone(to_tz).timetuple()))

二、时间戳转字符串

1、默认:

import time
def timestamp_to_str(timestamp, _format="%Y-%m-%d %H:%M:%S"):
  return time.strftime(_format, time.localtime(timestamp))

2、按时区转:

import datetime
from pytz import timezone as tz
def timestamp_to_str_by_timezone(timestamp, _format="%Y-%m-%d %H:%M:%S”, to_tz="America/Los_Angeles"):
  to_tz = tz(to_tz)
  return str(datetime.datetime.fromtimestamp(timestamp, to_tz).strftime(_format))

三、字符串转datetime

1、默认:

import datetime
def datetime_str_to_datetime(string_time, _format="%Y-%m-%d %H:%M:%S"):
  return datetime.datetime.strptime(string_time, _format)

2、按时区转:

import datetime
from pytz import timezone as tz
def datetime_str_to_datetime_by_timezone(string_time, from_tz=“UTC”, to_tz="America/Los_Angeles”, _format="%Y-%m-%d %H:%M:%S",):
  from_tz = tz(from_tz)
  to_tz = tz(to_tz)
  return datetime.datetime.strptime(string_time, _format).replace(
        tzinfo=from_tz).astimezone(to_tz)

四、datetime转字符串

1、默认:

import datetime
def datetime_to_datetime_str(date, _format="%Y-%m-%d %H:%M:%S"):
  return date.strftime(_format)

2、按时区转:

import datetime
from pytz import timezone as tz
def datetime_to_datetime_str_by_timezone(date, from_tz=“UTC”, to_tz="America/Los_Angeles”, _format="%Y-%m-%d %H:%M:%S"):
  from_tz = tz(from_tz)
  to_tz = tz(to_tz)
  date = date.replace(tzinfo=from_tz).astimezone(to_tz)
  return date.strftime(_format)

五、datetime转时间戳

1、默认:

import time
def datetime_to_timestamp(date):
  return int(time.mktime(date.timetuple()))

2、按时区转:

import time
from pytz import timezone as tz
def datetime_to_timestamp_by_timezone(date, from_tz=“UTC”, to_tz="America/Los_Angeles"):
  from_tz = tz(from_tz)
  to_tz = tz(to_tz)
  return int(time.mktime(date.replace(
      tzinfo=from_tz).astimezone(to_tz).timetuple()))

六、时间戳转datetime

1、默认:

import datetime
def timestamp_to_datetime(time_stamp):
  return datetime.datetime.fromtimestamp(time_stamp)

2、按时区转:

import datetime
from pytz import timezone as tz
def timestamp_to_datetime_by_timezone(time_stamp, to_tz="America/Los_Angeles"):
  to_tz = tz(to_tz)
  return datetime.datetime.fromtimestamp(time_stamp, to_tz)

PS:这里再为大家推荐几款关于日期与天数计算的在线工具供大家使用:

在线日期/天数计算器:
http://tools.3water.com/jisuanqi/date_jisuanqi

在线万年历日历:
http://tools.3water.com/bianmin/wannianli

在线阴历/阳历转换工具:
http://tools.3water.com/bianmin/yinli2yangli

Unix时间戳(timestamp)转换工具:
http://tools.3water.com/code/unixtime

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python和GO语言实现的消息摘要算法示例
Mar 10 Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 Python
python如何派生内置不可变类型并修改实例化行为
Mar 21 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
Python generator生成器和yield表达式详解
Aug 08 Python
Django对models里的objects的使用详解
Aug 17 Python
Python切图九宫格的实现方法
Oct 10 Python
python3爬取torrent种子链接实例
Jan 16 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
理解深度学习之深度学习简介
Apr 14 Python
python实现简单五子棋游戏
Jun 18 #Python
Python基础学习之函数方法实例详解
Jun 18 #Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 #Python
Python弹出输入框并获取输入值的实例
Jun 18 #Python
python使用tkinter库实现五子棋游戏
Jun 18 #Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 #Python
python 弹窗提示警告框MessageBox的实例
Jun 18 #Python
You might like
PHP排序算法类实例
2015/06/17 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
javascript之AJAX框架使用说明
2010/04/24 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
python基于multiprocessing的多进程创建方法
2015/06/04 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
python实现扫雷小游戏
2020/04/24 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
新大陆软件面试题
2016/11/24 面试题
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
2015年教师节活动总结
2015/03/20 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python