一位教授告诉我,你可以使用utime.h获得文件的最后修改时间.但是,手册页似乎引用了utime()仅设置此值.如何在UNIX系统上查找上次在C中更改文件的时间?
我需要将自纪元以来的秒数转换为ptime.我很确定必须有一个简单的方法来做到这一点,但我找不到任何东西.谢谢.
编辑:原始时间戳是浮点.我不能改变它,我不想失去亚秒精度.
原始问题:unix时间戳的正确列格式是什么?
网络充满了混乱:一些帖子声称SQLite没有无符号类型 - 无论是什么,或者除了64位int类型(但有(反)示例调用UNSIGNED INTEGER).数据类型页面仅在bigint示例中提及它.它还声称有一个6字节的整数,但没有为它命名.似乎我尝试使用INTEGER将4字节签名的签名存储unix时间戳作为负数.我听说有些系统也会返回64位时间戳.OTOH我不太喜欢浪费4个字节来存储1个额外位(时间戳的最高位),即使我必须选择更大的数据格式,我宁愿选择6字节的数据格式.我甚至看过一篇声称SQLite unix时间戳是REAL类型的帖子...
完全问题:有人可以澄清一下这个烂摊子吗?
假设你有一个Unix时间戳,那么检查该时间戳是否是昨天某个时间的简单和/或优雅的方法是什么?
我主要在Javascript,PHP或C#中寻找解决方案,但也欢迎伪代码和语言无关的解决方案(如果有的话).
我在数据库中有一个时间戳数据类型,格式为24-JuL-11 10.45.00.000000000 AM,并希望将其转换为unix时间戳,我该如何获得它?
我想将日期字符串从日期字符串转换为unix时间戳,例如 14-02-2018
有人可以帮忙吗?
我知道Unix时间戳被定义为从那以后经过的秒数1970-01-01 00:00:00Z.但是,我找不到给出这个定义的明确来源.关于闰秒,我还阅读了关于UTC和Unix时间戳之间关系的各种不同陈述.
此维基百科页面包含所有闰秒的列表.第一个是
1972-06-30 23:59:60
Run Code Online (Sandbox Code Playgroud)
对于"所有现代计算机系统",Unix时间对于除秒之外的任何事情都是完全无知的.
UNIX时间跟踪UTC而不是TAI,这意味着它"纠正"闰秒.因此,UNIX时间不是"自纪元以来的秒数",而是"86400*(自纪元以来的整天数)+(自午夜以来的秒数)",并且UNIX时间将向前(从未到目前为止)和闰秒后退(大多数实现中的第二个将在23:59:60到00:00:00之间重复,因为它们具有相同的时间戳).
我也读过(但是我再也找不到了 - 在Stack Overflow上的某个地方)Unix时间戳假设每天都有24*60*60秒.海报暗示天仍然以某种方式保持同步,而闰秒只是"减慢"真正的秒.因此,"unix时间戳秒"可能不是SI秒.
我可以看到三个可能的答案:
A1:Unix时间戳跟踪自1970-01-01 00:00:00Z以来的SI秒.这意味着他们距离UTC只有27秒.
A2:Unix时间戳跟踪"在TAI中传递秒数".这意味着将Unix时间戳转换为UTC的库必须处理闰秒.
A3:Unix时间戳跟踪"以UTC为单位的秒数".这意味着两个Unix时间戳1之间的差异在大多数情况下可能是1 SI秒,但不是全部.
请在答案中添加来源.
蟒蛇datetime似乎没有意识到闰秒(?).
>>> import datetime
>>> a = datetime.datetime(1972, 6, 30, 23, 59, 59)
>>> b = datetime.datetime(1972, 7, 1, 0, 0, 0)
>>> b-a
datetime.timedelta(0, 1)
Run Code Online (Sandbox Code Playgroud)
并且time模块似乎在第二个之前映射了实际的闰秒:
>>> import time
>>> t3 = time.mktime((1972, 6, 30, 23, 59, 59, -1, -1, -1))
>>> t4 = time.mktime((1972, 7, 1, …Run Code Online (Sandbox Code Playgroud) 我有新闻项,在创建时将以unix时间戳格式创建日期/时间的时间添加到数据库中.如果我想按最近的顺序排序,我会在我的mysql查询中使用ASC或DESC吗?
谢谢大家的回复.我现在知道了.我会让Sarfraz回答他接受的解决方案,因为他是第一个回复,但感谢其他人:).必须等待11分钟才能接受它作为解决方案.
这是我目前的PHP程序:
$dateStamp = $_SERVER['REQUEST_TIME'];
Run Code Online (Sandbox Code Playgroud)
我后来记录.
结果是$dateStamp变量包含如下数字:
1385615749
这是一个Unix时间戳,但我希望它包含带有小时,分钟,秒,日期,月和年的人类可读日期.
所以我需要一个将其转换为人类可读日期的函数.
我该怎么办?
还有其他类似的问题但不完全像这样.我想要最简单的解决方案.