当前位置: 首页 > 面试题库 >

64位Unix时间戳转换

彭仲卿
2023-03-14
问题内容

是否有32位系统的64位Unix时间戳转换的C ++实现?我需要转换struct tm为64位整数,反之亦然,包括leap年,时区和UTC。还需要它可移植,至少对于GNU / Linux和Windows而言。


问题答案:

你需要:

typedef long long time64_t; 
time64_t mktime64(struct tm *t); 
struct tm* localtime64_r(const time64_t* t, struct tm* p);

最初(2011年),此答案包含指向2038bug.com的链接,可以在其中下载pivotal_gmtime_r包含上述功能的小型库。那时,该库已从2038bug.com中删除,链接断开并由主持人从答案中删除。pivotal_gmtime_r现在可以在这里找到类似的代码:

https://github.com/franklin373/mortage/tree/master/time_pivotal

此外,我还找到了另一个较新的库y2038,它也实现了mktime64localtime64_r

https://github.com/evalEmpire/y2038



 类似资料:
  • 看来我星期一早上有个案子!!! 正如你们所能看到的,我的本地机器位于东部时区,日光节约已经生效。这可以从下面的“日期”命令中看到。 然后我使用php生成了一个unix时间戳。它应该给出您当前的时间并在1970年1月1日的UTC 0:0:0将其转换为Unix纪元。 我的mysql会话被设置为UTC,我想象1460992469表示为mktime转换为UTC。 问题是转换回est不承认夏令时。谁能帮我指

  • 我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题。我将概述我的具体用例,并对来自其他SO答案和网络的信息进行总结。 对于我正在编写的服务,数据库条目被创建并存储在移动设备和我们的网站上,需要以两种方式同步。我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库。服务器端是使用Django和MySQL在Python中实现的,但将来可能会有其他解决方案取代它。

  • 如果本地时间位于UTC时区,那么如何将转换为Unix时间戳? >。

  • 问题内容: 我正在尝试将19位Unix时间戳(例如,一个五分之五)转换为可读的日期/时间格式。我的时间戳以6个零结尾,这表明时间以纳秒为单位。 我遇到了一些例子,其中人们使用了我不需要的时区。另一个示例使用ofEpochSecond像这样: 但是我不确定是否需要使用EpochSecond。 下面的代码提供了我最新的实现方法: 但是我得到的输出是这样的: 它不以例如2019格式显示年份格式。 问题答

  • 我正在尝试将19位Unix时间戳(如(15亿分之一)转换为可读的日期/时间格式。我的时间戳以6个零结束,这表明时间以纳秒为单位。 我遇到过一些例子,人们使用了我不需要的时区。另一个例子是这样使用ofEpochSecond: 但是我不确定我是否需要使用ofEpoch秒钟。 下面的代码给出了我实现这一目标的最新方法: 但是我得到的输出是这样的: 它没有以例如2019格式显示年份格式。

  • 问题内容: 我将时间作为Unix时间戳存储在MySQL数据库中,并将其发送到一些JavaScript代码。我怎么会得到时间呢? 例如,以HH / MM / SS格式。 问题答案: let unix_timestamp = 1549312452 有关Date对象的更多信息,请参考MDN或ECMAScript5规范。