【问题标题】:a fundamental question on system date关于系统日期的一个基本问题
【发布时间】:2010-01-11 08:49:39
【问题描述】:

请原谅我的天真……一个非常基本的问题:

我有一个 google 应用程序引擎项目,该项目有一个 cron 作业,用于获取日期与当前系统日期匹配的记录。此 cron 作业在每天 0:00(即午夜 12:00)触发。 cron 作业显然是在获取与前一天相对应的记录。有什么问题?

这与在 0:00 更新系统日期所涉及的延迟有关吗?我假设在上午 12:00 获取系统日期的 cal 将给出新一天的日期。我错了吗?

【问题讨论】:

  • 忘了提及这一点:以防万一它有任何影响... cron 作业配置为在印度标准时间 0:00 运行(即亚洲/加尔各答)

标签: google-app-engine datetime date operating-system


【解决方案1】:

时区...系统可能在 UTC 中运行,或者至少在您期望的时区之外的某个时区中运行。

【讨论】:

  • 确实 Andrew..服务器使用 UTC...发现我必须在使用它之前对时间进行调整..谢谢
【解决方案2】:

您应该像这样配置您的cron.yaml 文件:

- description: midnight task
  url: /path/to/task
  schedule: every day 00:00
  timezone: Asia/Kolkata

请参阅docs

问题在于date-time values are stored as and returned using the UTC time zone 并且无法更改。您应该在更新记录时处理此问题。更多信息可用herehere

【讨论】:

  • 谢谢..但我没有这样存储日期值..我有两个单独的 int 字段...一个用于日期,一个用于月份(我只需要这两个)
  • 我的 cron.xml 中的配置与您上面提到的完全相同
  • @Aadith: 即使你将日期保存为整数,你也应该先将日期时间转换为你的时区,然后再转换为int,否则将根据UTC时区保存日期。
猜你喜欢
  • 1970-01-01
  • 2011-06-20
  • 2011-06-16
  • 2011-11-26
  • 2013-08-03
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 2011-12-26
相关资源
最近更新 更多