标签: python-dateutil

如何在Python2.7中安装Six模块

我正在使用Python 2.7并尝试使用dateutil如下:

from dateutil import parser as _date_parser
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    from dateutil import parser as _date_parser
  File "C:\Python27\Lib\dateutil\parser.py", line 24, in <module>
    from six import text_type, binary_type, integer_types
ImportError: No module named six
Run Code Online (Sandbox Code Playgroud)

能告诉我这个six模块是什么以及如何在Windows 7机器上安装它?

python shared-libraries python-dateutil six

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

Python dateutils根据iCalendar格式打印重复规则(参见RFC 5545)

我试图将重复规则打印为iCalendar格式指定的字符串(请参阅RFC 5545).我使用python dateutils,特别是dateutil.rrule来创建重复规则,我想将其打印为字符串,如:

    "RRULE:FREQ=DAILY;COUNT=5"
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我是否有方法来实现这一目标?

我想我正在使用labix dateutils btw.

非常感谢!

python rrule python-dateutil rfc5545

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

使用Python在给定日期(舍入后一天)添加一个月

我想在给定日期添加一个月

import datetime
dt = datetime.datetime(year=2014, month=5, day=2)
Run Code Online (Sandbox Code Playgroud)

所以我应该得到

datetime.datetime(year=2014, month=6, day=2)
Run Code Online (Sandbox Code Playgroud)

但随着

dt = datetime.datetime(year=2015, month=1, day=31)
Run Code Online (Sandbox Code Playgroud)

我应该得到

datetime.datetime(year=2015, month=3, day=1)
Run Code Online (Sandbox Code Playgroud)

因为没有2015-02-31(而且我希望我的结果在一天之后回合)

有些月份有31天,有些月份有30天,有些是29天,有些是28天!

所以添加一个datetime.timedelta可能不是一个好的做法(因为我们不知道要添加的天数)

我注意到熊猫有一个有趣的概念 DateOffset

http://pandas.pydata.org/pandas-docs/stable/timeseries.html#dateoffset-objects

但我没有找到Month偏移,只是MonthBegin或MonthEnd

我也看到这篇文章 如何使用datetime Python模块计算当前日期六个月的日期?

所以我试过dateutil.relativedelta但是

from dateutil.relativedelta import relativedelta
datetime.datetime(year=2015, month=1, day=31)+relativedelta(months=1)
Run Code Online (Sandbox Code Playgroud)

回报

datetime.datetime(2015, 2, 28, 0, 0)
Run Code Online (Sandbox Code Playgroud)

所以结果在前一天得到了结果.

是否有(干净)的方式来圆天之后?

编辑:我给了一个例子,一个月要添加,但我也希望能够添加例如:2年零6个月(使用一个relativedelta(years=2, months=6))

python calendar timedelta pandas python-dateutil

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

Conda说在Python 3.5.1中安装dateutil的冲突

我有一个由conda管理的Python 3.5.1环境.我正在尝试创建一个新的Python 3.5.1环境,conda create并在新环境中列出我想要的几个模块.

一个这样的模块是dateutil(不是 python-dateutil),它已经为现有的3.5.1环境安装,并且仅使用命令安装conda install dateutil- 当我在6个月前创建该环境时没有发出警告或冲突.我正在尝试复制此环境以提供可共享的内容以与协作者共享以进行分析 - 当我conda list在当前的3.5.1环境中使用时,我看到普通dateutil是安装的,而不是python-dateutil,所以这就是我需要的.

但是,现在当我尝试包含dateutil新环境时,它表示存在冲突,dateutil并且仅适用于Python 2.6.*,2.7.*,3.3.*,3.4.*.

这是一个例子:

user@computer:~/programming$ conda create -n test_dateutil python=3.5.1 dateutil
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata: ............
Solving package specifications: ....

The following specifications were found to be in conflict:
  - dateutil -> python 2.6*|2.7*|3.3*|3.4*
  - python 3.5.1*
Run Code Online (Sandbox Code Playgroud)

但是使用现有的Python 3.5.1环境,dateutil显然安装没有问题:

(py35)user@computer:~$ ipython
Python 3.5.1 |Continuum …
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-dateutil conda

9
推荐指数
2
解决办法
3055
查看次数

如何在Python 3.x中使用dateutil.relativedelta?

您好我正试图relativedelta从dateutil模块中使用.

我想做这里提到的,给一个给定的datetime对象增加几个月.

但我正在尝试使用Python 3,我收到以下错误:

Traceback (most recent call last):
  File "bin/controller.py", line 2, in <module>
    from dateutil.relativedelta import relativedelta
ImportError: No module named 'dateutil'
Run Code Online (Sandbox Code Playgroud)

然后我读到dateutil现在是Python 3的一部分,但我该如何导入呢? import dateutil似乎不起作用:

Traceback (most recent call last):
  File "bin/controller.py", line 3, in <module>
    import dateutil
ImportError: No module named 'dateutil'
Run Code Online (Sandbox Code Playgroud)

我正在使用virtualenv所以我想安装它pip.

python datetime python-3.x python-dateutil

9
推荐指数
2
解决办法
8317
查看次数

导入错误:“没有名为‘dateutil’的模块”

我安装了 Python-Dateutil 包,但是当我在脚本中导入它时,它抛出错误:

导入 dateutil 导入错误:没有名为“dateutil”的模块

当我检查 lib 文件夹时,dateutil.eggs 文件在那里,因此我无法运行 matplotlib 模块。请提供解决方案。

python matplotlib python-dateutil

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

Python dateutil.parser抛出"ValueError:day超出范围的月份"

我有一个以下代码,运行良好的输入格式,{Year}/{Month}除非它涉及到1994/02

这是示例代码

>>> import dateutil.parser as dtp
>>> dtp.parse('1994/01')
datetime.datetime(1994, 1, 29, 0, 0)
>>> dtp.parse('1994/03')
datetime.datetime(1994, 3, 29, 0, 0)
>>> dtp.parse('1994/02')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/antony/.virtualenvs/comp-invest/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/antony/.virtualenvs/comp-invest/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
    ret = default.replace(**repl)
ValueError: day is out of range for month
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,代码工作正常使用1994/01和1994/03,但失败,1994/02 这是否有什么关系闰年?但更重要的是,如何解决这个问题并使我的代码再次运行?

谢谢

python python-dateutil

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

这是使用 dateutil 设置时区的正确方法吗?

>>> import dateutil.parser, dateutil.tz as tz
>>> dateutil.parser.parse('2017-08-09 10:45 am').replace(tzinfo=tz.gettz('America/New_York'))
datetime.datetime(2017, 8, 9, 10, 45, tzinfo=tzfile('/usr/share/zoneinfo/America/New_York'))
Run Code Online (Sandbox Code Playgroud)

这真的是我们应该为解析设置默认时区的方式吗?我已经阅读了解析器和示例的文档,但似乎找不到任何说“这是为 dateutil.parser.parse 设置默认时区的方法”,甚至是类似内容的内容。

因为虽然这有效,但如果提供了区域,在某些情况下它会做错事。这是否意味着我们应该这样做?

>>> d = dateutil.parser.parse('2017-08-09 10:45 am +06:00')
>>> d = d.replace(tzinfo=d.tzinfo or tz.gettz('America/Chicago'))
Run Code Online (Sandbox Code Playgroud)

因为它也很笨重。

解析时设置默认时区的推荐方法是什么?

python timezone datetime python-dateutil

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

即使导入 types-python-dateutil 后,Mypy 也找不到 python-dateutil

我正在Mypy v0.910跑步pre-commit。它抱怨python-dateutil没有类型存根。但是,即使安装了存根后,我仍然遇到相同的错误。

我的预提交配置是

default_language_version:
  python: python3
repos:
  <other hooks>
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v0.910
    hooks:
      - id: mypy
        args:
            - --install-types
        additional_dependencies: [tokenize-rt==3.2.0]
Run Code Online (Sandbox Code Playgroud)

当我尝试提交时,它抱怨存根不存在,然后无法安装它们。

mypy.....................................................................Failed
- hook id: mypy
- exit code: 1

coordinator/policy.py:5: error: Library stubs not installed for "dateutil.parser" (or incompatible with Python 3.7)
coordinator/policy.py:5: note: Hint: "python3 -m pip install types-python-dateutil"
coordinator/policy.py:5: note: (or run "mypy --install-types" to install all missing stub packages)
tests/test_policy.py:6: error: Cannot find implementation or library stub …
Run Code Online (Sandbox Code Playgroud)

python python-dateutil mypy pre-commit.com

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

使用dateutil.parser转换DDMMYYYY

我有以下字符串输入:24052017.当我尝试做的时候:

>>>dateutil.parser.parse("24052017")
Run Code Online (Sandbox Code Playgroud)

它告诉我month must be in 1..12.

我甚至尝试过:

>>>dateutil.parser.parse("24052017", firstday=True)
Run Code Online (Sandbox Code Playgroud)

它给了我完全相同的结果.

似乎发生的事情是,它不喜欢没有空格或分隔符的事实.它正确地读取了一天,但是当它读到的那个月0520.这是我怀疑的,至少.

如何在dateutil.parser不操纵字符串的情况下使用转换此特定输入?

python python-dateutil

7
推荐指数
2
解决办法
7702
查看次数