相关疑难解决方法(0)

使用Python将UTC日期时间字符串转换为本地日期时间

我从来没有把时间转换成UTC.最近有一个请求要让我的应用程序能够识别时区,而且我一直在圈子里跑.关于将本地时间转换为UTC的大量信息,我发现它相当基本(也许我也做错了),但我找不到任何有关将UTC时间轻松转换为最终用户时区的信息.

简而言之,Android应用程序向我发送(appengine app)数据,在该数据中是一个时间戳.要将时间戳存储到我正在使用的时间:

datetime.utcfromtimestamp(timestamp)
Run Code Online (Sandbox Code Playgroud)

这似乎有效.当我的应用程序存储数据时,它将提前5小时存储(我是EST -5)

数据存储在appengine的BigTable上,当检索到它时,它就像一个字符串一样:

"2011-01-21 02:37:21"
Run Code Online (Sandbox Code Playgroud)

如何在用户正确的时区将此字符串转换为DateTime?

此外,用户时区信息的推荐存储是什么?(你怎么通常存储TZ信息,即:"-5:00"或"EST"等等等等),我敢肯定的答案,我的第一个问题可能包含一个参数的回答第二个.

python datetime utc localtime

193
推荐指数
9
解决办法
30万
查看次数

python/pytz问题从本地时区转换为UTC然后返回

我要求将日期从本地时间戳转换为UTC然后再转换回本地时间戳.

奇怪的是,当从UTC转换回本地时,python决定它是PDT而不是原始的PST,所以转换后的日期已经增加了一个小时.有人可以向我解释发生了什么或我做错了什么?

from datetime import datetime
from pytz import timezone
import pytz

DATE_FORMAT = '%Y-%m-%d %H:%M:%S %Z%z'

def print_formatted(dt):
    formatted_date = dt.strftime(DATE_FORMAT)
    print "%s :: %s" % (dt.tzinfo, formatted_date)


#convert the strings to date/time
date = datetime.now()
print_formatted(date)

#get the user's timezone from the pofile table
users_timezone = timezone("US/Pacific")

#set the parsed date's timezone
date = date.replace(tzinfo=users_timezone)
date = date.astimezone(users_timezone)
print_formatted(date)

#Create a UTC timezone
utc_timezone = timezone('UTC')
date = date.astimezone(utc_timezone)
print_formatted(date)

#Convert it back to the user's local timezone …
Run Code Online (Sandbox Code Playgroud)

python timezone pytz

7
推荐指数
1
解决办法
1627
查看次数

标签 统计

python ×2

datetime ×1

localtime ×1

pytz ×1

timezone ×1

utc ×1