问题标签 [python-datetime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
168 浏览

sql - 运行自定义查询时区疯狂的 Django 和 postgresql

我对日期有一个真正的问题,并在 django 中使用 connection.cursor() 运行自定义 sql。

目前,我向最终用户显示的每个日期都使用 .astimezone(timezone) 进行转换,但我有这个自定义查询,它可以操纵日期。这是查询:

返回的日期是 +4 小时,通常我会按上述方式转换以获得正确的日期,但是在查看数据库时,日期似乎对我的时区是正确的。所以不确定我是否理解发生了什么。我不确定如何使用 ORM 实现上述功能,因此选择了自定义查询。

顺便说一句,在我的数据库客户端SELECT now();中正确设置为我的时区。在 djangoTIME_ZONE = 'US/Eastern'USE_TZ = True.

然后我尝试将时区传递给查询,如下所示:

与在我的数据库客户端中通过 sql 控制台简单地运行查询相比,这仍然会导致意外结果。后者看起来是正确的。似乎 django 正在使用时区。

如果有人能给她一些光,将不胜感激。

谢谢。

0 投票
1 回答
1646 浏览

python - 在 Python 中解析人类可读的重复日期

问题。在我的 Django 应用程序中,用户为计划执行创建任务。用户是相当非技术性的,如果他们可以编写常规的人类可读表达式来定义何时执行某些任务,那就太好了,例如:

  • 每逢星期一
  • 每周五、周三
  • 日常的
  • 每月 1 日、14 日、20 日
  • 每个星期五;每个月底

这是由Todoist启发的。目前,只需要日期;没有时间。我花了几个小时在谷歌上搜索图书馆来做到这一点,但没有运气。我期待一个函数,比如说,,in_range(expression, date)这样:

变体。这就是我看过的。

  • 标准datetime库进行日期解析,但不是如上所述的日期范围解析。
  • Python-dateutil - 通过 支持重复日期rrule,非常实用,但仍然不支持解析。
  • Python-crontabPython-croniter接受标准的 Unix crontab 语法(并允许指定工作日等),但这种语法仍然过于技术性,我想尽可能避免使用它。
  • ArrowParsedatetime不支持该功能。

那么,是否有 Python 代码片段或我错过的库来做这件事?如果没有,我将自己编写解析器。如果它看起来还不错,想在开源中发布它。

0 投票
1 回答
1295 浏览

xml - 用beautifulsoup替换python中xml中所有标签的内容

这是我要更改的 xml/kml 文件:http: //pastebin.com/HNwzLppa

我要解决的问题:我们有一个由日志文件中的数据生成的 kml 文件。数据有时与 GMT 存在时间偏差。(我们正在解决这个问题。)我们无法控制该过程用于生成 kml 的数据,否则整个练习将毫无意义。我们编写了一个脚本来检查与 GMT 的偏差。

我想要完成的事情: 使用我们已经编写的脚本将小时、分钟和秒的差异输入到这个脚本中。找到所有<timestamp>标签并提取datetime并执行 atimedelta并写回新的时间戳,然后保存文件。

到目前为止我做了什么:

我得到的错误:

我的问题是我该如何做我想做的事情,并且在 prettify 语句之后将文件写入磁盘。

提前致谢。

0 投票
1 回答
622 浏览

python - 当开始时间大于结束时间时,如何判断当前时间是否在指定范围内?

有没有办法检查您的当前时间是否在结束时间小于开始时间的时间范围内?

我看到的所有例子和答案都是开始时间小于结束时间的。例如

如果now在范围内,将正确返回。

但是,这种方法在结束时间大于开始时间时不起作用。

这将永远返回not in range

如果可能的话,我想避免做这样的事情:

0 投票
1 回答
1726 浏览

python - 将完整的字符串类型时间转换为日期时间类型 - Python

我有一个 unicode 字符串 u'May 12, 2014 8:00:40 PM',我想将其转换为日期时间对象,但我不想要时间戳,只想要日期。

输出应该是2014/5/122014/05/12

我尝试使用 strptime 但它对我没有帮助。可能是我错过了其他东西?

我已经看过这些线程

将字符串转换为日期时间

将字符串转换为日期类型python

在 Python 上将字符串转换为日期类型

0 投票
1 回答
450 浏览

python - Python time-lat-lon 数组操作和分组

对于 t-x-y表示时间-纬度-经度的数组并且t-x-y网格的值包含任意测量变量,我如何x-y为给定时间条件“分组”数组切片?

例如,如果伴随t-array 是日期时间的一维列表,我如何找到x-y月份等于 1 的网格的元素平均值。如果t只有 10 个元素,其中月份 = 1,那么我想要一个(10, len(x), len(y))数组。从这里我知道我可以通过网格np.mean(out, axis=0)获得所需的平均值,数组操作的结果在哪里。 x-yout

的形状t-x-y近似为(2000, 50, 50),即不同时间(50, 50)值的网格。假设唯一条件的数量(无论我是按月还是按年切片)<< 比数组2000中的元素总数。t

实现这一目标的最蟒蛇方式是什么?此操作将在许多数据集上重复,因此首选计算效率高的解决方案。我对 python 比较陌生(我什至不知道如何创建一个示例数组供您测试),所以请随意推荐其他可能有帮助的模块。 (我看过 Pandas,但它似乎主要处理一维时间序列数据......?)

编辑:

作为示例数组,这是我能做的最好的事情:

所以 a 是随机数据数组, t 是(比如说)代表一年中月份的数组,在这种情况下只是普通整数。在此示例中,每个月有 83 个实例。我们如何分离出对应于 t = 1 时的 83 个x-y切片a(以创建月平均数据集)?

0 投票
3 回答
445 浏览

python - 包含时间值的大型 numpy 数组之间的差异

我有十个(1000,1000)个 numpy 数组。每个数组元素都包含一个浮点数,它代表一天中的小时。例如 14.0 = 下午 2 点和 15.75 = 下午 15:45。

我想找到这些数组之间的最大差异。结果应该是单个 (1000,1000) numpy 数组,其中每个数组元素包含十个数组之间的最大差异。目前我有以下,这似乎工作正常:

但是,它会导致 22 小时的晚上 11 点和凌晨 1 点之间的差异。我需要相差2小时。我想我需要以某种方式使用 datetime.time,但我不知道如何让 datetime 与 numpy 数组很好地配合使用。


编辑:时间是指一天中某个事件发生的平均时间,因此它们与特定日期无关。因此,两次差值可以正确解释为 22 小时或 2 小时。然而,我总是希望采取这两种可能的解释中的最低限度。

0 投票
2 回答
1960 浏览

python - 为什么python的strptime不支持%z?

我知道它不受支持,但不知道为什么。似乎支持这一点并不难。并且“从 UTC 偏移”并不像时区缩写那样模棱两可。

0 投票
1 回答
363 浏览

python - 烧瓶安全。将 datetime(2014, 5, 31, 23, 46, 38, 559513) 转换为 python 格式 datetime(2014-5-31, 23:46:38.559513)

我正在使用 Flask-Security,一切正常,除了电子邮件确认链接。显然,当用户注册时,他会收到一封电子邮件,其中包含确认电子邮件的链接,因此当他/她单击该链接时,我的应用程序会给出 SQL 日期时间错误。确切的错误是:

因此,想问我应该怎么做才能克服这个错误。

这是我的models.py:

0 投票
0 回答
104 浏览

mysql - Python 日期不适用于 MySQL 日期库

我正在运行基于烧瓶的 Web 服务并使用 python。

配置:Python - 2.7.3 MySQL - 5.5.31 Linux - 12.04.2

我们已集成仅向特定用户发送邮件 2 次,并且我们将条目存储在特定表中。

CREATE TABLE user_communication_stats( idint(11) NOT NULL AUTO_INCREMENT, user_idbigint(20) NOT NULL, mails_receivedtinyint(2) DEFAULT '1', current_datedate NOT NULL, PRIMARY KEY ( id), KEY user_id( user_id, current_date)) ENGINE=InnoDB AUTO_INCREMENT=19592 DEFAULT CHARSET= utf8

我们使用上表来检查有多少用户收到了多少邮件。每个用户一天最多可以收到 2 封邮件。

2 周前,我遇到了“mails_received”列为 0 的问题。我们正在使用 SQL 炼金术来做所有事情。我尝试了很多调试,但一切似乎都很好。我在本地尝试过似乎工作正常。我认为这可能是一些问题,所以我重新启动了这个问题。

抓住: 当我重新启动服务器时,那天一切似乎都运行良好,我在该列中不再得到 0。

为了跟踪它,我检查了 2 个小时才满意。我以为问题解决了,就回去睡觉了。早上我再次检查它再次回到0。我开始担心并再次开始调试,但事情似乎在本地。我再次重新启动服务器,一切又开始正常工作。我不知道为什么在重新启动服务器后它工作正常。在 crontab 我把工作重新启动服务器。

我们datetime为此使用python。

当我们进入生产终端并尝试在不重新启动服务器的情况下运行相同的代码时,它工作正常。我不知道网络服务有什么问题。

任何帮助或见解都有助于调试问题。

代码: