我正在使用python dateutil解析datetimestamps,但希望避免额外的依赖.那么有没有办法与标准的python库做同等的事情:
dateutil.parser.parse("2012-12-12T12:00")
Run Code Online (Sandbox Code Playgroud)
非常感谢!
我目前正在开发一个支持多个时区所需的应用程序.
为此,我正在使用dateutil库.现在,我需要一种方法向用户显示dateutil库支持的所有可用时区的列表.
另外,建议将tz作为字符串存储在数据库中,如"Europe/Berlin"吗?
我在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)
这可能是什么?谢谢
我在使用夏令时时遇到问题。
让我解释一下上下文。
我在我的数据库中以 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-062014-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) 使用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 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秒.这里发生了什么?
尝试解析带有时区信息的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作为偏移量?
我正在尝试使用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 的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和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)