标签: python-dateutil

python标准lib相当于dateutil.parser.parse

我正在使用python dateutil解析datetimestamps,但希望避免额外的依赖.那么有没有办法与标准的python库做同等的事情:

dateutil.parser.parse("2012-12-12T12:00")
Run Code Online (Sandbox Code Playgroud)

非常感谢!

python datetime standard-library python-dateutil

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

获取所有可用的时区

我目前正在开发一个支持多个时区所需的应用程序.

为此,我正在使用dateutil库.现在,我需要一种方法向用户显示dateutil库支持的所有可用时区的列表.

另外,建议将tz作为字符串存储在数据库中,如"Europe/Berlin"吗?

python timezone datetime python-dateutil

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

Django dateutil ISO 8601没有'读'属性错误

我在Django视图中将日期时间转换为ISO 8601以推送到Facebook页面事件.我尝试过datetime.strptime但是遵循最佳建议我选择了:

    eventdate = event.date
    print eventdate
    date_iso = dateutil.parser.parse(eventdate)
Run Code Online (Sandbox Code Playgroud)

我打印时,eventdate在控制台中看起来像这样,2013-06-18 02:50:00但在我得到之前它没有进一步:

Django Version: 1.4.1
Exception Type: AttributeError
Exception Value:    
'datetime.datetime' object has no attribute 'read'
Exception Location: /Users/mirth/.virtualenvs/ssc/lib/python2.7/site-packages/dateutil/parser.py in get_token, line 72
Python Executable:  /Users/mirth/.virtualenvs/ssc/bin/python
Python Version: 2.7.2
Python Path:    
['/Users/mirth/code/django/ssc',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/site-packages/requests/packages',
 '/Users/mirth/code/django/ssc/main',
 '/Users/mirth/code/django/ssc/main/../',
 '/Users/mirth/code/django/ssc',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg',
 '/Users/mirth/.virtualenvs/ssc/lib/python27.zip',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/plat-darwin',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/plat-mac',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/plat-mac/lib-scriptpackages',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/lib-tk',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/lib-old',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/lib-dynload',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/site-packages',
 '/Users/mirth/.virtualenvs/ssc/lib/python2.7/site-packages/PIL']
Run Code Online (Sandbox Code Playgroud)

这可能是什么?谢谢

python django iso8601 python-dateutil

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

python夏令时问题

我在使用夏令时时遇到问题。

让我解释一下上下文。

我在我的数据库中以 UTC 格式存储日期。每个用户都有一个时区,我也将这些信息存储在数据库中。

我根据他们的时区为每个用户计算“1 个月”的时间段。

例如,用户应该看到:

2014-01-06 -> 2014-02-05
2014-02-06 -> 2014-03-05
2014-03-06 -> 2014-04-05
2014-04-06 -> 2014-05-05
2014-05-06 -> 2014-06-05
etc.
Run Code Online (Sandbox Code Playgroud)

我在开启或关闭夏令时(3 月和 11 月)时遇到问题

代替:

  • 2014-03-06 -> 2014-04-05,我得到 2014-03-06 -> 2014-04-06
  • 2014-11-06 -> 2014-12-05,我得到 2014-11-05 -> 2014-12-04

然后它为所有下一个偏移。

我尝试使用 UTC 日期,而不是将它们转换为用户时区以在 get_end_date 中添加 1 个月,但我仍然遇到问题。

知道如何处理吗?

谢谢

这是我的代码和 get_end_date 方法。

import pytz
from dateutil.parser import parse as parse_date
from dateutil.relativedelta import relativedelta

def to_tz(dt, tz):
    tz = pytz.timezone(tz)
    return tz.normalize(dt.astimezone(tz))

def get_end_date(dt, tz):
    dt_central …
Run Code Online (Sandbox Code Playgroud)

python timezone datetime python-datetime python-dateutil

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

如何将日期字符串转换为ISO8601标准?

使用dateutil我能够生成类型的ISO8601, YYYY-MM-DDThh:mm:ssTZD但我想要格式,'YYYY-MM-DDThh:mm:ss.sssTZD'例如'2015-05-13T18:05:55.320-07:00'

我的代码是

from datetime import datetime
from dateutil.parser import *
from dateutil.tz import *
import dateutil
import time

ts = time.time()
utc_offset = (datetime.fromtimestamp(ts) -
           datetime.utcfromtimestamp(ts)).total_seconds()

now = parse("11/10/09 11:20 PM")
now = now.replace(tzinfo=tzoffset('PDT', utc_offset))
Run Code Online (Sandbox Code Playgroud)

和输出是2009-11-10T23:20:00-07:00 如何获得输出的2009-11-10T23:20:00.000-07:00

python datetime python-dateutil

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

Python dateutil解析器解析错误的秒数

Python dateutil正在正确解析字符串,除了字符串的秒组件.

In [1]: from dateutil import parser
In [2]: parser.parse("05/09/2016 16:04.18")
Out[2]: datetime.datetime(2016, 5, 9, 16, 4, 10)
Run Code Online (Sandbox Code Playgroud)

dateutil.parser将16:04.18解析为16小时,4分钟和10秒,此时它应为18秒.这里发生了什么?

python python-datetime python-dateutil

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

从python中的dateutil.parser.parse获取时区

尝试解析带有时区信息的datetime字符串并获取utc偏移量

from dateutil.parser import parse as parse_date
s = '2017-08-28 06:08:20,488 CDT'
dt =  parse_date(s)
print dt.utcoffset()
None
Run Code Online (Sandbox Code Playgroud)

为什么utcoffset返回None而不是-5作为偏移量?

python python-dateutil

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

Jupyter Notebook Anaconda由于dateutil的语法错误而无法打开

我正在尝试使用Anaconda导航器(在Mac OSX上)打开Jupyter Notebook,但无法正确打开它。我一直在终端中收到此消息。

File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/dateutil/parser.py", line 158
    l.append("%s=%s" % (attr, `value`))
                              ^
SyntaxError: invalid syntax
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]
Run Code Online (Sandbox Code Playgroud)

我尝试检查我的默认版本的python,它说我的默认版本是python 3.6。但是,当我开始尝试安装dateutil时,它说

pip install python-dateutil
Requirement already satisfied: python-dateutil in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
Run Code Online (Sandbox Code Playgroud)

我遇到了麻烦,因为我的计算机上有多个版本的python。我能做什么?

python pip python-dateutil anaconda jupyter-notebook

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

ValueError:当 DTSTART 是时区感知时,RRULE UNTIL 值必须在 UTC 中指定

我一直在尝试使用 python 的dateutil rrule包解析重复规则

但是,我收到了一个与我理解重复规则的方式不一致的奇怪错误

错误是

ValueError: RRULE UNTIL values must be specified in UTC when DTSTART is timezone-aware

我正在调用的函数是

recurrence = "RRULE:FREQ=WEEKLY;UNTIL=20181206T075959Z;BYDAY=MO,WE,FR" rule = rrulestr(recurrence, dtstart=datetime.now())

如果直到结构为UNTIL=20181206T075959Z,那不是在 UTC 中吗?为什么会出现这个错误,什么是合适的解决方案?问题是,这适用于

"RRULE:FREQ=WEEKLY;UNTIL=20191206T075959;BYDAY=MO,WE,FR",我认为这不是 UTC,因为它缺少“Z”

python rrule python-dateutil

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

dateutils rrule返回相隔2个月的日期

我是Python和dateutil模块的新手.我传递了以下论点:

disclosure_start_date = resultsDict['fd_disclosure_start_date']
disclosure_end_date = datetime.datetime.now()
disclosure_dates = [dt for dt in rrule(MONTHLY, dtstart=disclosure_start_date, until=disclosure_end_date)]
Run Code Online (Sandbox Code Playgroud)

这里 disclosure_start_date = 2012-10-31 00:00:00转换为datetime是datetime.datetime(2012, 10, 31, 0, 0)

截止日期截至目前.

我用的时候:

disclosure_dates = [dt for dt in rrule(MONTHLY, dtstart=disclosure_start_date, until=disclosure_end_date)]
Run Code Online (Sandbox Code Playgroud)

我得到每隔一个月或相隔2个月的日期.结果是:

>>> list(disclosure_dates)
[datetime.datetime(2012, 10, 31, 0, 0), 
 datetime.datetime(2012, 12, 31, 0, 0), 
 datetime.datetime(2013, 1, 31, 0, 0), 
 datetime.datetime(2013, 3, 31, 0, 0), 
 datetime.datetime(2013, 5, 31, 0, 0), 
 datetime.datetime(2013, 7, 31, 0, 0), 
 datetime.datetime(2013, 8, 31, 0, 0), 
 datetime.datetime(2013, 10, …
Run Code Online (Sandbox Code Playgroud)

python datetime date rrule python-dateutil

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