Python的UTC时间转换

UTC时间转换,最终得到的都是UTC时间。

简单来说就是:

时间戳(timestamp) 转换-> UTC显示时间(datetime),使用time.gmtime(timestamp)。

显示时间(datetime) 转换-> UTC时间戳(timestamp),使用calendar.timegm(datetime.timetuple())。

注意:

VC下相应的接口是gmtime和_mkgmtime。

代码:

# -*- coding: gb2312 -*-
# UTC时间转换,最终得到的都是UTC时间:
# 时间戳(timestamp)   转换->  UTC显示时间(datetime)
# 显示时间(datetime)  转换->  UTC时间戳(timestamp)
# UTC,协调世界时,又称世界统一时间,可以认为是时区为0的时间。

import time
import datetime
import calendar

aDatetime = datetime.datetime(1970, 1, 1, 0, 0, 1)
aTimestamp = 1

# 获取时区时差
print "time.timezone: " , time.timezone

# 根据自定义时间,获取显示时间(datetime)。
print "datetime: ", aDatetime
print "timetuple: ", aDatetime.timetuple()
print "time.strptime: ", time.strptime("1970-1-1 0:1:1", "%Y-%m-%d %H:%M:%S")

# 根据时间戳(timestamp),获取UTC显示时间(datetime)。即:时间戳(timestamp) 转换-> 显示时间(datetime)。
print "time.gmtime: timestamp(%s)->datetime(%s)" % (aTimestamp, time.gmtime(aTimestamp))
print "datetime.datetime.utcfromtimestamp: timestamp(%s)->datetime(%s)" % (aTimestamp, datetime.datetime.utcfromtimestamp(aTimestamp))

# 根据显示时间(datetime),获取UTC时间戳(timestamp)。即:显示时间(datetime) 转换-> 时间戳(timestamp)。
print "calendar.timegm: datetime(%s)->timestamp(%s)" % (aDatetime.timetuple(), calendar.timegm(aDatetime.timetuple()))
dt = time.gmtime(aTimestamp - time.timezone) # time.mktime转换时间是带时区的,所以需要减掉时区时差
print "time.mktime: datetime(%s)->timestamp(%s)" % (dt, time.mktime(dt))

输出:

time.timezone:  -28800
datetime:  1970-01-01 00:00:01
timetuple:  time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=-1)
time.strptime:  time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=-1)
time.gmtime: timestamp(1)->datetime(time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0))
datetime.datetime.utcfromtimestamp: timestamp(1)->datetime(1970-01-01 00:00:01)
calendar.timegm: datetime(time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=-1))->timestamp(1)
time.mktime: datetime(time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0))->timestamp(1.0)
时间: 2024-10-13 03:45:15

Python的UTC时间转换的相关文章

Java 本地时间与UTC时间转换

UTC时间:通用协调时(Universal Time Coordinated),与格林尼治平均时(GMT,Greenwich Mean Time)一样,都是与英国伦敦的本地时相同. import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class GetUTCTime { // 取得本地时间: private Ca

Java中UTC时间转换

import java.text.SimpleDateFormat; import java.util.Date; import java util.Calendar; public class Test { public static void main(String[] args) { //SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); SimpleDateFormat sd

js 扩展jquery date 转换时间为UTC时间

Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinutes(), //minute "s+": this.getSeconds(),

utc时间和local 时间互转

python 1.utc 时间和 local 时间互转 #utc 转本地时间 def utcFlocaltime(utc_time): utc_time =  utc_time + datetime.timedelta(hours=8) return utc_time.strftime("%Y-%m-%d %H:%M:%S") #本地 时间转utc def localtrfutc(local_time): utc_time = local_time - datetime.timedel

UTC时间与本地时间的相互转换

//把UTC时间转换成北京时间 DateTime now = DateTime.Parse(DateTime.UtcNow.ToString(), new CultureInfo("zh-CN"), System.Globalization.DateTimeStyles.AssumeUniversal); //把北京时间转换成UTC时间 DateTime nowUTC = now.ToUniversalTime();

Python中如何把一个UTC时间转换为本地时间

需求: 将20141126010101格式UTC时间转换为本地时间. 在网上搜了好长时间都没有找到完美的解决方案.有的引用了第三方库,这就需要在现网安装第三方的软件.这个是万万不可的.因为真实环境不一定允许你随便使用root用户安装Python模块.最终找到了一个不用外部模块的完美解决方案,放在这里分享给大家. 1 #!/usr/bin/python 2 3 import os,sys,datetime,time 4 from datetime import datetime 5 import

Python基本时间转换

时间转换 python中处理时间的时候,最常用的就是字符形式与时间戳之间的转换. 把最基本的转换在这里记下来 string -> timestamp import time import dateutil.parser as dateparser def str_to_timestamp(time_str) dt = dateparser.parse(time_str) # OR: dt = time.strptime(datetimestring, fmt) return time.mktim

Android 转换UTC时间:2013-06-13T14:15:44.000的时间格式 为GMT时间

在有些软件中,可能需要展示一些时间信息,而这些信息可能是Server以UTC格式或Unix timestamp 格式推送过来的,终端可能需要将这些转换为本地时间展示. 终端的制式可能是12小时制.也可能是24小时制的 今天就遇到将utc时间格式转换为GMT HH:返回的是24小时制的时间 hh:返回的是12小时制的时间 下面就是转换的类型代码,当然服务器的格式 2013-06-13T14:15:44.000 SimpleDateFormat sdf = new SimpleDateFormat(

android 获取UTC时间和与.net时间戳的转换

本文纯属整合,将在项目中用到的UTC时间和与.NET时间戳的转换进行记录. 1.android获取UTC时间 /** * 获取UTC时间 * * @return */ public static String getUTCTimeStr() { DateFormat format = new SimpleDateFormat("yyyy/MM/dd/HH/mm/ss"); StringBuffer UTCTimeBuffer = new StringBuffer(); // 1.取得本