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在不同层级目录import模块的方法
Jan 31 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
Django中Model的使用方法教程
Mar 07 Python
对python中的乘法dot和对应分量相乘multiply详解
Nov 14 Python
浅谈pyqt5中信号与槽的认识
Feb 17 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
python 整数越界问题详解
Jun 27 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
python基于K-means聚类算法的图像分割
Oct 30 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
Python的Flask框架的简介和安装方法
2015/11/13 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
python3的print()函数的用法图文讲解
2019/07/16 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
python实现字典嵌套列表取值
2019/12/16 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
商务日语专业毕业生求职信
2013/10/26 职场文书
社区学习雷锋活动总结
2014/04/25 职场文书
永远是春天观后感
2015/06/12 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
python3 字符串str和bytes相互转换
2022/03/23 Python
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js