- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Windows 10 上的 Python 3.7:
>>> from datetime import datetime
>>> datetime.fromtimestamp(0)
datetime.datetime(1970, 1, 1, 0, 0)
>>> datetime.fromtimestamp(0).timestamp()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument
>>> datetime.fromtimestamp(3600 * 3).timestamp()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument
>>> datetime.fromtimestamp(360000).timestamp()
360000.0
我知道在 Windows 上,由于 32 位整数大小,时间戳的范围限制在 1970 – 2038 之间。但是它在一个应该仍然允许的时间戳上崩溃真的很奇怪。 FWIW,我在 UTC+2,所以如果时区有问题,我希望 3600 * 3
(3 小时)时间戳可以工作。我能以某种方式完成这项工作,还是我应该接受非常低的时间戳不起作用?
最佳答案
好的,我对 Python 的源代码做了一些挖掘。问题出在函数 _PyTime_localtime
中。这称为 localtime_s函数有两个参数 time_t t
和 struct tm *tm
。其中 t
是要转换的 time_t
对象,tm
是生成的时间结构。当您将 0 作为 time_t
传递时,这是完全有效的,结果结构的字段 tm_hour
在我的机器上设置为 1。还有其他非 Windows 变体的代码,调用 localtime_r相反。
现在问题转移到内部使用的函数 utc_to_seconds
,它采用时间结构(分为如下参数:int year, int month, int day, int hour, int分钟,整数秒
)。现在对于年、月和日没有问题,它被转换为一个序数(顺便说一句,这是正确的序数)。但是函数的最后一行如下:
return ((ordinal * 24 + hour) * 60 + minute) * 60 + second;
EPOCH 应该在那里返回 62135683200,但由于这个额外的一小时,我们得到 62135686800。
这一切都在内部函数 local_to_seconds
long long t, a, b, u1, u2, t1, t2, lt;
t = utc_to_seconds(year, month, day, hour, minute, second);
/* Our goal is to solve t = local(u) for u. */
lt = local(t);
if (lt == -1)
return -1;
a = lt - t;
u1 = t - a;
t1 = local(u1);
其中 t = 62135683200
和 lt = 62135686800
。我们以 u1 = -3600
结束,这导致参数无效。
因此得出结论:问题出在您调用timestamp
时。我不确定在 C 代码中修复它的解决方案是什么,但我猜它肯定看起来像一个错误。
关于Python 在日期时间接近纪元的 Windows 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56931738/
我将时间存储在 64 位整数中,格式为 20110103101419(即表示 2011-01-03 10:14:19)。如何将其转换为自 1970 年以来的秒数? 最佳答案 我的 C 有点生疏,但看看
我正在生成一个包含过去二十四小时事件 gnuplot 的图表,但时间轴看起来非常糟糕,因为它试图在最后一天每五分钟拟合一次长数字。 gnuplot 有什么方法可以将 x 轴视为纪元时间,并每隔一小时左
我当前正在使用 django 并输出 unix 纪元的日期(以秒为单位)。如何在 unix epoch 中使用 jquery time ago ? 我看到这个例子:2015 年 1 月 10 日 Ja
我在 Google Apps 脚本中将字符串转换为日期对象时遇到一些问题。 我的日期采用以下格式,来自第三方 API: 2013-01-17T17:34:50.507 我正在尝试将其转换为日期对象:
我使用一个库,该库使用以下结构来定义开始时间戳,如下所示。 struct SYSTEMTIME { /** year */ WORD year; /** month *
使用 perl,我试图估计自文件创建以来的时间。我想将本地时间转换为 unix 时间(纪元),然后取文件的 unix 时间并减去。 我面临的问题是,当我将 localtime 转换为 unixtime
我正在使用具有以下响应的 API: { dt: 1474664400, temp: { day: 51.93, min: 46.62, max: 53.53, nigh
我正在从 API 获取估计公交车到达时间的时间戳作为时间戳/纪元:1536589019000。如果我访问类似 this 的网站我得到了适当的格式: 2018 年 9 月 10 日星期一上午 7:16:
我使用的 API 将时间返回为 Unix 时间 (1424952512) 到目前为止,我可以使用将 unix 时间转换为 NSDate func timeStamp(unixTime: Double)
@Data public class SampleDate { private Date revisiondate; } @RequestMapping("/date") public Resp
我在论坛中搜索了我的问题,但一无所获。 :(这个日期时间转换让我发疯。 我尝试将毫秒纪元转换为日期时间。我在互联网上找到了这个方法: private DateTime TimeFromUnix
我有一个 dateTime 变量,我想将它转换为纪元的十进制值。 如何才能做到这一点? 我尝试使用: seconds-from-duration($time, xs:dateTime('1970-01
如何获取纪元中的当前日期值,即自 1970-1-1 以来经过的天数。我需要 unix shell 脚本中的解决方案。 最佳答案 Unix Date 命令将以纪元时间显示 命令是 date +"%s"
这个问题在这里已经有了答案: Convert from date to epoch-Oracle (3 个答案) 关闭 9 个月前。 在使用 Oracle SQL 获取 unix 纪元时间戳方面,有
你能解释一下下面这句话吗,这让我很困惑。1.迭代2.梯度下降步骤3.纪元4.批量大小。 最佳答案 在神经网络术语中: 一个epoch = 所有训练样本的一次前向传递和一次反向传递 批量大小 = 一次前
我在 PostgreSQL 中有一个字符串 "2016-10-25T00:14:30.000"。 我想将时间戳转换为整数,例如:1477354441 我想为该值添加自定义分钟数,例如147735444
我想从 Postgres 获取数据。有一个类型为 timestamp without timezone 的列。简单的 SELECT 返回我格式化的日期,但我只想要以毫秒为单位的时间戳。我如何在 SQL
我的文件包含格式为“[dd.mm.yyyy.] 文本值”的多行。我需要将其转换为“Unix 纪元 | 文本值”。我尝试使用 awk 来执行此操作,但似乎找不到正确的命令例如,如果文件是: [30.08
我的一个表中的一列是 DATE,目前它会自动填充该行创建时间的时间戳。时间戳看起来像 2013-02-10 19:56:12。无论如何,我可以自动使用 unix 纪元为其添加时间戳吗?我希望这是有道理
我需要将时区感知 date_range (TimeStamps) 转换为 UNIX 纪元值,以便在外部 Javascript 库中使用。 我的做法是: # Create localized test
我是一名优秀的程序员,十分优秀!