相关疑难解决方法(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万
查看次数

通过电子邮件解析带有时区的日期?

我正在尝试从电子邮件中检索日期.起初它很容易:

message = email.parser.Parser().parse(file)
date = message['Date']
print date
Run Code Online (Sandbox Code Playgroud)

我收到:

'Mon, 16 Nov 2009 13:32:02 +0100'
Run Code Online (Sandbox Code Playgroud)

但我需要一个不错的日期时间对象,所以我使用:

datetime.strptime('Mon, 16 Nov 2009 13:32:02 +0100', '%a, %d %b %Y %H:%M:%S %Z')
Run Code Online (Sandbox Code Playgroud)

提升了ValueError, since %Z isn't format for +0100.但我在文档中找不到适当的时区格式,只有这个%Z区域.有人可以帮助我吗?

python format timezone datetime rfc5322

31
推荐指数
4
解决办法
2万
查看次数

在Python中解析带有timezone缩写名称的日期/时间字符串?

我正在尝试解析像"Sat, 11/01/09 8:00PM EST"Python中的时间戳字符串,但我找不到能够处理缩写时区的解决方案.

我正在使用dateutilparse()功能,但它不解析时区.是否有捷径可寻?

python timezone date

30
推荐指数
4
解决办法
1万
查看次数

Python时间戳从日,月,年

是否可以使用日期对象中的日,月和年创建Python时间戳(秒数)?我基本上在寻找午夜的时间戳(小时,分钟和秒都是0).

谢谢!

python datetime

26
推荐指数
2
解决办法
5万
查看次数

Python时间老化,第2部分:时区

继我之前的问题,Python的时间老化之后,我现在遇到了关于时区的问题,结果发现它并不总是"+0200".因此当strptime尝试解析它时,它会引发异常.

我想过用[:-6]或者其他什么来切断+0200,但有一种真正的方法可以用strptime做到这一点吗?

如果重要的话,我正在使用Python 2.5.2.

>>> from datetime import datetime
>>> fmt = "%a, %d %b %Y %H:%M:%S +0200"
>>> datetime.strptime("Tue, 22 Jul 2008 08:17:41 +0200", fmt)
datetime.datetime(2008, 7, 22, 8, 17, 41)
>>> datetime.strptime("Tue, 22 Jul 2008 08:17:41 +0300", fmt)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/_strptime.py", line 330, in strptime
    (data_string, format))
ValueError: time data did not match format:  data=Tue, 22 Jul 2008 08:17:41 +0300  fmt=%a, %d %b %Y %H:%M:%S +0200
Run Code Online (Sandbox Code Playgroud)

python timezone datetime

22
推荐指数
3
解决办法
2万
查看次数

将RFC 3339时间转换为标准Python时间戳

有没有简单的方法将RFC 3339时间转换为常规Python时间戳?

我有一个正在读取ATOM源的脚本,我希望能够将ATOM源中项目的时间戳与文件的修改时间进行比较.

我从ATOM规范中注意到,ATOM日期包括时区偏移量(Z<a number>),但在我的情况下,之后没有任何内容,Z所以我猜我们可以假设GMT.

我想我可以用某种类型的正则表来解析时间,但我希望Python有一种内置的方式来做我以前无法找到的方法.

python datetime rfc3339

18
推荐指数
10
解决办法
3万
查看次数

Django:RunTimeWarning:DateTimeField在时区支持处于活动状态时收到了一个天真的日期时间

我正在尝试测试基于django cart的购物车创建

但是当我尝试创建购物车时出现此错误:

RunTimeWarning:DateTimeField在时区支持处于活动状态时收到了一个天真的日期时间

我做了一些研究,但我无法解决我的问题 datetime.datetime.now()

我的测试目录中的test_views.py:

from django.test import TestCase, Client, RequestFactory
import unittest
from django.contrib.auth.models import User, AnonymousUser
from front.models import Entreprise, Cart, CartItems
from decimal import Decimal
from front.cart import models
import datetime
import pytz
from pytz import all_timezones
from django.utils import timezone



def _create_cart_in_database(self, creationDate=datetime.datetime.now(), checkedOutDate=True):
    """
        Helper function so I don't repeat myself
    """
    cart = models.Cart()
    cart.creationDate = creationDate
    cart.checkedOutDate = False
    cart.save()
    return cart


def test_cart_creation(self):
    creationDate = datetime.datetime.now()
    cart = …
Run Code Online (Sandbox Code Playgroud)

python django

12
推荐指数
1
解决办法
3万
查看次数

datetime:从时区名称的字符串转换不起作用

我有以下字符串"2017-03-30 08:25:00CET",我想将其转换为日期时间tz感知对象.

根据这个问题,从python 3.2可以只使用datetime模块完成.另外,从文档中我看到了

%z |  UTC offset in the form +HHMM or -HHMM (empty string if the object is naive). |  (empty), +0000, -0400, +1030
%Z |  Time zone name (empty string if the object is naive).                        |  (empty), UTC, EST, CST
Run Code Online (Sandbox Code Playgroud)

所以我尝试以下方法

datetime.strptime(dep_dt, '%Y-%m-%d %H:%M:%S%Z')
Run Code Online (Sandbox Code Playgroud)

我没有得到任何错误,但是我得到的对象不是tz意识到的

datetime.datetime(2017, 3, 30, 8, 25)
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我将我的字符串转换为"2017-03-30 08:25:00+0200"然后将其转换为对象

datetime.strptime(dep_dt, '%Y-%m-%d %H:%M:%S%z')

我确实得到了一个tz感知的日期时间:

datetime.datetime(2017, 3, 30, 8, 25, tzinfo=datetime.timezone(datetime.timedelta(0, 7200)))
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它适用%z但不与%Z …

python timezone python-3.x python-datetime

8
推荐指数
1
解决办法
2981
查看次数

ValueError时间数据'Fri Mar 11 15:59:57 EST 2016'与格式'%a%b%d%H:%M:%S%Z%Y'不匹配

我试图从以下日期创建一个日期时间对象:'Fri Mar 11 15:59:57 2016 2016'使用格式:'%a%b%d%H:%M:%S%Z%Y' .

这是代码.

from datetime import datetime
date = datetime.strptime('Fri Mar 11 15:59:57 EST 2016', '%a %b %d %H:%M:%S %Z %Y')
Run Code Online (Sandbox Code Playgroud)

但是,这会导致ValueError,如下所示.

ValueError: time data 'Fri Mar 11 15:59:57 EST 2016' does not match format '%a %b %d %H:%M:%S %Z %Y'
Run Code Online (Sandbox Code Playgroud)

也许我错过了我的格式字符串明显错误的东西,但我一遍又一遍地检查它.非常感谢任何帮助,谢谢.

编辑以反映评论/问题以获取更多信息:

我正在使用的Python版本是2.7.6.

在Ubuntu 14.04上使用'locale'命令我得到这个:

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

python datetime strptime

5
推荐指数
1
解决办法
625
查看次数

linux将时间(对于不同的时区)转换为UTC

有没有办法,在linux中,有问题地获得给定时间字符串的UTC时间

Tue Dec  14 10:30:23 PST 2012
Tue Jan  4 11:30:23 EST 2013
Run Code Online (Sandbox Code Playgroud)

到UTC时间,无论(并且不更改)本地时区设置?

c linux timezone gcc

3
推荐指数
1
解决办法
2998
查看次数

如何使用Google Task Queues API安排任务?

我想安排一个任务(即一个代码块)在稍后执行,其中执行的时间和日期以及其他参数作为任务有效负载传入.

所以我们有一个基于Python(Django)的Appengine应用程序,其中:

任务在tasks.py中定义

@csrf_exempt
def task_myfunction(request):
    if request.method == 'POST':
      # Read POST parameters
      # Perform task
    return HttpResponse("Success")
Run Code Online (Sandbox Code Playgroud)

Payload被添加到views.py中的队列中,并且有效负载被POST到提供的URL,该URL映射到上面定义的函数.

from google.appengine.api import taskqueue

# ..Somewhere inside a view..
taskqueue.add(queue_name='myqueue', url='/task/myfunction', params={
    # Specify parameters
    })
Run Code Online (Sandbox Code Playgroud)

有没有办法,我可以指定执行的准确时间(带有时区)以及有效负载数据,以便从队列中自动获取任务并在该时刻执行.

python django google-app-engine

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

Python - 具有未知行为的strptime格式

我有时间格式:

Sat Jan 17 04:33:06 +0000 2015
Run Code Online (Sandbox Code Playgroud)

我无法匹配strptime格式.我能找到最接近的:基本日期时间类型是%c"Locale的适当日期和时间表示." 但是,这并不完全匹配.

我要去:

time_vec = [datetime.strptime(str(x),'%c') for x in data['time']]
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

python datetime strptime

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

将Javascript日期字符串转换为python datetime对象

当前日期时间通过ajax请求传递到Django后端,该日期将存储在数据库中。要将其存储在数据库中,必须首先将日期转换为一个datetime对象,可以Sun, 04 Sep 2016 07:13:06 GMT通过以下语句轻松地将日期转换为UTC格式(例如)的对象:

>>> from datetime import datetime
>>> datetime.strptime("Sun, 04 Sep 2016 07:13:06 GMT", "%a, %d %b %Y %H:%M:%S %Z")
Run Code Online (Sandbox Code Playgroud)

但是,在这种方法中,无法保留用户的时区。

javascript Date构造函数调用,即new Date()以以下格式返回日期:

Sun Sep 04 2016 12:38:43 GMT+0530 (IST)
Run Code Online (Sandbox Code Playgroud)

转换为datetime对象时给出错误。

>>> datetime.strptime("Sun, 04 Sep 2016 07:13:06 GMT+0530 (IST)", "%a, %d %b %Y %H:%M:%S %Z")

ValueError: time data 'Sun Sep 04 2016 12:46:07 GMT+0530 (IST)' does not match format '%a, %d %b %Y %H:%M:%S …
Run Code Online (Sandbox Code Playgroud)

javascript python django datetime

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