Python3 根据时区获取时间,并计算时间差

news/2024/11/20 13:29:55/

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

先把所有的代码贴出来:

#!/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')

欢迎指导!


http://www.ppmy.cn/news/911830.html

相关文章

中国经济形势开年如何看?

文章目录 三位经济学家谈当前经济热点问题一,中国宏观经济稳中向好的趋势没变二,稳增长的政策预计仍将继续出台三,更多投资机遇将涌现四,房地产市场将保持平稳健康发展五,资本市场发展机遇大于挑战 三位经济学家谈当前…

中国嫦娥升空了,美国登月神话破产了

中国嫦娥升空了,美国登月神话破产了 柳鲲鹏 2007-10-29 关键字:嫦娥 登月 通信 简介:嫦娥探月卫星升空了,如此重大的事,我们却不能象美国40年前一样进行实况转播卫星绕月盛事。难道我们现在的通信技术还不如40年前的…

从美国云计算的五年发展看中国

在业界看来,云计算有望成为继大型计算机、个人计算机、互联网之后的第四次IT产业革命。近年来,一场风起“云”涌的技术革命在世界范围内涌起,在全球云计算的潮流下,越来越多的中国城市和企业跻身于这场世界性的技术盛宴中&#xf…

任正非与美国思想家的咖啡对话全文

来源:华为心声、蓝血研究 美国的所作所为促成了华为的觉醒,现在是华为的“人造卫星”时代! ——尼古拉斯尼葛洛庞帝 美国学者与任正非的咖啡对话 2019年6月17日 田薇:“一杯咖啡吸收宇宙能量”,我是田薇。有人说&#…

对于美国互联网企业来说,中国互联网企业有哪些值得学习之处?

今天我在网上看到这么一个问题“对于美国互联网企业来说,中国互联网企业有哪些值得学习之处?” 作为在中国和美国互联网公司都工作过的我来说,这个问题激起我非常强烈的回答欲望。简单地介绍一下我自己,我在国内上完本科后,在苏宁易购工作了一年左右,然后去了美国读研究…

有中国驾照的情况下,在美国怎么考驾照?

Yaaa、知乎用户、阿厚 等人赞同 各州有别,我说一下加州的情况好啦。 传说中的理论上说呢,国内的驾照在加州可以直接用,但似乎有个半年时限,若不幸被警车逼停要解释半天还要看交警心情也蛮麻烦。且驾照之于美帝,更相当于身份证明,混bar买酒等等日常必不可少,所以各位打算…

量化交易:美国究竟比中国领先多久?

转 量化交易:美国究竟比中国领先多久? 量化投资领域,中国不仅是本行业的技术储备不如欧美,而且实际上,量化交易经常运用各行各业的最先进科学模型来开发策略(eg. FBI用的人脸识别模型,NASA的空…

MySQL数据库时差问题的分析与解决

背景 今天早上刚上班,就被同事提示,程序的日期处理有问题。数据库里日期为:2019-05-21 11:00:00 而前端显示的日期为:2019-05-21 16:00:00 分析 那肯定是和时区相关了,别问为什么,这是程序猿该有的直觉。…