学习和工作经常会遇到数据库和服务器不在一个地方的情况,那么当遇到时间比较时,就会很头疼,不清楚到底相差几个小时,这篇文章就解决这个问题。

先把所有的代码贴出来:

#!/usr/bin/python3
# -*- coding: utf-8 -*-import pytz
import datetime
import time# 可以直接获取北京时间,简写
beijing_time = datetime.datetime.now(pytz.timezone('PRC'))
# 2019-05-28 16:43:37.265310+08:00# 以洛杉矶为例,获取洛杉矶当地时间
los_angeles = datetime.datetime.now(pytz.timezone('America/Los_Angeles'))
# 2019-05-28 01:43:37.266825-07:00# 获取时间差:洛杉矶时间--北京时间
# 格式化时间
los_angeles_timestamp = los_angeles.strftime('%Y-%m-%d %H:%M:%S')   # 2019-05-28 01:48:04
beijing_time_timestamp = beijing_time.strftime('%Y-%m-%d %H:%M:%S') # 2019-05-28 16:48:04# 转为时间戳
now = time.strptime(beijing_time_timestamp,'%Y-%m-%d %H:%M:%S')
# time.struct_time(tm_year=2019, tm_mon=5, tm_mday=28, tm_hour=16, tm_min=50, tm_sec=45, tm_wday=1, tm_yday=148, tm_isdst=-1)old = time.strptime(los_angeles_timestamp,'%Y-%m-%d %H:%M:%S')
# time.struct_time(tm_year=2019, tm_mon=5, tm_mday=28, tm_hour=1, tm_min=50, tm_sec=45, tm_wday=1, tm_yday=148, tm_isdst=-1)# 时间戳相减
delta_seconds = time.mktime(now) - time.mktime(old) # 54000.0print(delta_seconds / 3600) # 15.0 个小时

有需要的同学看到代码就差不多懂了,北京和洛杉矶相差了15个小时,当然这个数据也可以百度等方式知道,但是在做项目的时候,我们会根据当前时间和数据库时间做比较,然后执行一些相关操作;假如服务器在北京,数据库在美国洛杉矶,那么你用下面的方式做比较就相差的太大了:

datetime.datetime.now() - db_time

所以要把服务器的时间转为洛杉矶时间才可以作比较:

# 获取洛杉矶当地时间
los_angeles = datetime.datetime.now(pytz.timezone('America/Los_Angeles'))
# 2019-05-28 01:43:37.266825-07:00

这个才是重点!

如果想指定加几个小时,也就是类似上面的,把洛杉矶时间变为北京时间,可以这样:

datetime.datetime.now(PST) + datetime.timedelta(hours=15)

下面提供一个函数,获取国家的时区:

# 获取中国所有时区
all_cn_city = pytz.country_timezones('cn')
# 获取美国所有时区
all_us_city = pytz.country_timezones('us')

欢迎指导!

Python3 根据时区获取时间,并计算时间差相关推荐

  1. linux c计算时间差值,获取时间和计算时间差的几种方法总结,时间差几种方法...

    获取时间和计算时间差的几种方法总结,时间差几种方法 一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( ...

  2. c语言windows获取时间,【转载】c/c++在windows下获取时间和计算时间差的几种方法总结...

    一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t time ...

  3. c/c++在windows下获取时间和计算时间差的几种方法总结

    一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t time ...

  4. python计算时间差代码_Python3显示当前时间、计算时间差及时间加减法示例代码...

    Python3显示当前时间.计算时间差及时间加减法示例代码 摘要 在使用Python写程序时,经常需要输出系统的当前时间以及计算两个时间之间的差值,或者将当前时间加减一定时间(天数.小时.分钟.秒)来 ...

  5. 比较时间并计算时间差

    /*** 博客园@utf_8* https://www.cnblogs.com/pan-4957/p/10693874.html*/ function(start, end) {/** 比较时间并计算 ...

  6. 【java】根据当前时区获取时间

    地区国家 编号 缩写 时区 中国 86 CN Asia/Shanghai 香港 852 HK Asia/Hong_Kong 澳门 853 MO Asia/Macau 台湾 886 TW Asia/Ta ...

  7. 【javaScript获取时间,计算任意两个日期之间相隔的天数】计算任意两个日期之间相隔的天数

    主要算法: 利用毫秒差,由于1000毫秒等于1秒,60秒等于1分钟,60分钟一小时,一天24小时.所以可以用:毫秒差 除 以(60×60×1000×24)等于天数. 代码如下: <script ...

  8. 各类 动态获取时间,计算距离,贝塞尔曲线等 的方法

    1,获取年月日 时分秒 setInterval(function(){ setTime(); },1000); private setTime() { var myDate: Date = new D ...

  9. 利用时间字符串计算时间差

    一个订单表,已知时间字符串,需要计算出两笔订单之间的时间差,并找出两笔订单中时间差最大的一个 import datetimetime1 = "20201222171220360" ...

  10. matlab计算时间差多少秒,Matlab 设计时间计算器 计算时间差

    h0=figure('toolbar','none',... 'position',[200 150 300 250],... 'name','时间计算器'); huidiao=[... 'k=0;, ...

最新文章

  1. makefile:4:***缺少分隔符。 停止
  2. cordova 创建Android 工程(零起点)
  3. java secondtotime_Java中的LocalTime toSecondOfDay()方法
  4. [转]Oracle SQL 日期的應用
  5. 自考那些事儿(九):再次学操作系统
  6. 通用计算机遵循什么原则,计算机组成原理——计算机系统概述考研题
  7. linux挂载lvm
  8. struts2学习笔记(一):配置struts2开发环境
  9. 龙之谷冰龙linux手工服务端,【网游】【龙之谷】v300冰龙巢穴一键服务端+客户端+GM工具+视频教程...
  10. 计量经济学(七)----自相关性Autocorrelation.
  11. 计算机网络实验-网络嗅探器
  12. 抗DDOS产品性价比?
  13. 【Procmon教程2】如何揪出篡改注册表的元凶?
  14. curl http header_利用Linux命令cURL实现文件定时上传到ftp服务器的小程序,实用
  15. 五、卷积与傅立叶变换
  16. 3dsmax怎么添加uv坐标_3dmax缺少贴图坐标怎么添加uvmap修改器
  17. 如何通过光耦合器连接继电器
  18. 记录打卡假期的学习计划
  19. Hive lag函数使用注意
  20. h3c怎么设置虚拟服务器,h3c设置虚拟服务器

热门文章

  1. 使用SP Racing F3飞控ROSflight软件包的无人机自主飞行系统
  2. 2022年软件工程师报告出炉,年薪最高的是...
  3. TCP的快速重传机制
  4. SAS逻辑回归之多分类
  5. 【技能】Chrome扩展程序的使用
  6. 云有约 | 首攻RSA,天空卫士“秀肌肉”怎么样了?
  7. Photoshop设计精讲精练笔记 (三)
  8. 百度mip推送工具_链接提交主动推送(实时)、熊掌号天级/周级提交、MIP提交
  9. 异步和同步数据备份的差别_备份和同步数据的最佳文章
  10. 【考研数学】琴生不等式