标签: unix-timestamp

为什么MySQL unix时间不能超过32位无符号整数限制?

mysql> SELECT FROM_UNIXTIME(2145916799), FROM_UNIXTIME(2145916800), POW(2,32-1)-1, 2145916799 - POW(2,32-1)-1;
+---------------------------+---------------------------+---------------+----------------------------+
| FROM_UNIXTIME(2145916799) | FROM_UNIXTIME(2145916800) | POW(2,32-1)-1 | 2145916799 - POW(2,32-1)-1 |
+---------------------------+---------------------------+---------------+----------------------------+
| 2037-12-31 18:59:59       | NULL                      |    2147483647 |                   -1566850 | 
+---------------------------+---------------------------+---------------+----------------------------+
1 row in set (0.00 sec)

mysql> 
Run Code Online (Sandbox Code Playgroud)

第一个字段是我可以给出的最高值FROM_UNIXTIME.下一个字段是该值加上一个返回的字段NULL.第三个字段是无符号32位int的最高可能值.最终值是最高可能的UNIXTIME和最高可能的int之间的差异,这是一个超过18天的秒数.它似乎2037在当地时区结束时停止.有什么想法吗?在其中一项计算中,这是一个自然的突破点吗?这只是一个任意限制mysqld吗?

mysql int timestamp data-storage unix-timestamp

6
推荐指数
1
解决办法
2994
查看次数

从特定时区获取当前时间戳

有一种简单的方法来从特定时区获取javascript中的unix时间戳吗?例如,我希望客户端发送一个unix时间戳,但我想让它与我的时区相匹配.

谢谢!

javascript timezone unix-timestamp timezone-offset

6
推荐指数
1
解决办法
1万
查看次数

从64位整数秒计数创建boost :: posix_time :: ptime对象

我有一个32位的Linux系统,我必须在其中记录带有时间戳的数据,该时间戳是从1901-01-01 00:00:00的纪元开始的UINT32秒偏移.

计算时间戳对我来说没关系,因为我可以使用64位ticks()计数器和ticks_per_second()函数来生成自纪元以来的秒数,如下所示(我只需要二级分辨率)

const ptime ptime_origin(time_from_string("1901-01-01 00:00:00"));
time_duration my_utc = microsec_clock::universal_time() - ptime_origin;
boost::int64_t tick_per_sec = my_utc.ticks_per_second();
boost::int64_t tick_count = my_utc.ticks();
boost::int64_t sec_since_epoch = tick_count/tick_per_sec;
Run Code Online (Sandbox Code Playgroud)

这对我有用,因为我知道作为无符号整数,秒数不会超过最大UINT32值(不管多少年都没有).

我的问题是我的应用程序可以接收包含UINT32值的modbus消息,我必须ioctl使用调用来设置硬件和系统时钟RTC_SET_TIME.此UINT32再次是自我的纪元1901-01-01 00:00:00以来的秒数偏移量.

我现在的问题是我无法使用64位整数创建一个ptime对象 - 对象的ticks一部分time_duration是私有的,我被限制使用long哪个在我的32位系统上只是一个4字节的有符号整数,不足以存储从我的纪元偏离的秒数.

我无法控制时代的价值,所以我真的很难过如何boost::posix_time::ptime从我拥有的数据中创建我所需的对象.我可以通过计算特定时间间隔的硬第二次计数并使用额外的纪元来建立一个允许这种情况的桥来获得一个肮脏的解决方案,但我想知道boost代码中是否有某些内容可以让我完全使用提升日期时间库.我已经阅读了所有可以找到的文档,但是我看不到任何明显的方法.

编辑:我发现这个相关的问题将int64_t转换为time_duration但是接受的答案对我的纪元不起作用

c++ boost boost-date-time unix-timestamp

5
推荐指数
1
解决办法
2468
查看次数

基于多个标准在Redis中进行有序设置

我正在尝试创建一个redis有序集.问题在于需要根据两个标准(时间戳和分数)进行排序.但在redis中,我只能提供一个评分标准:

ZADD {key} {timestamp} {value}
Run Code Online (Sandbox Code Playgroud)

如何在此排序中添加分数以及PLZ?

更新: 这是我将两个不同的排序因子合并为一个浮点数值的方法:

var score = Math.floor(result.created_time/(60*60*24*1000));
score = score + (result.matches/10);
Run Code Online (Sandbox Code Playgroud)

只是为了解释一下,我先把时间戳转换为天数.我的'匹配'值通常是0-10.因此,转换为十进制值并添加为分数权重.这给了我最高得分的条目,每天排序.这正是我所需要的.

set unix-timestamp redis

5
推荐指数
1
解决办法
132
查看次数

Unix/Posix时间戳结束时的+0000是多少?

因此,例如下面是我的Cassandra实例生成的时间戳.+0000是什么意思?

2015-06-26 17:02:04+0000

谢谢

posix unix-timestamp

5
推荐指数
1
解决办法
1953
查看次数

基于时区的碳对象到 Unix 时间戳

我有一个格式为“ Ymd H:i:s ”的日期时间字符串,日期时间值为“ 2018-01-30 07:11:21 ”。

$carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2018-01-30 07:11:21','America/Chicago');
Run Code Online (Sandbox Code Playgroud)

它如何从这个 carbon 对象中获取 Unix 时间戳?

timezone unix-timestamp php-carbon laravel-5

5
推荐指数
1
解决办法
2万
查看次数

转换 Unix 时间戳 + 添加 1 小时

我正在使用 map reactjs 处理多行的倒计时时间

我为多行倒计时 1 小时。它工作正常,但我不知道如何像使用一样实时执行此操作new Date()

我有 Unix 日期,例如1521827247我如何转换它并添加 1 小时,这样我就可以倒计时了

这是我的代码

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      time: {},
      seconds: 3600,
      unix: 1521827247
    };
    this.timer = 0;
    this.startTimer = this.startTimer.bind(this);
    this.countDown = this.countDown.bind(this);
  }

  secondsToTime(secs) {
    let hours = Math.floor(secs / (60 * 60));
    let divisor_for_minutes = secs % (60 * 60);
    let minutes = Math.floor(divisor_for_minutes / 60);
    let divisor_for_seconds = divisor_for_minutes % 60;
    let seconds = Math.ceil(divisor_for_seconds);

    let …
Run Code Online (Sandbox Code Playgroud)

javascript unix-timestamp reactjs

5
推荐指数
1
解决办法
1万
查看次数

C# - 将日期转换为 unix 时间戳

我正在尝试将日期转换Saturday, 22. October 1932 00:00:00为unix时间戳-1173747600000

我的代码在这里:

DateTimeOffset dt2 = new DateTimeOffset(new DateTime(1932, 10, 22)).ToUniversalTime();
long a = dt2.ToUnixTimeMilliseconds();
Run Code Online (Sandbox Code Playgroud)

我正在获取时间戳-1173751200000。我做错了什么?

Epochconverter.com正在按预期计算 unix 时间戳。查看本地时间选项,然后查看时间戳(以毫秒为单位)

c# datetime unix-timestamp

5
推荐指数
1
解决办法
1万
查看次数

如果 Date.now() 大于 Number.MAX_SAFE_INTEGER 会发生什么?

当然,这又花了 20 万年才发生。但是在 的值超过 的值后,Javascript约会系统会出错吗?会发生什么后果?Date.now()Number.MAX_SAFE_INTEGER

也许这个问题看起来很奇怪而且没用。但是任何人都可以回答我的好奇心以及其他可能有相同问题的人。

javascript numbers date integer-overflow unix-timestamp

5
推荐指数
1
解决办法
157
查看次数

如何在 Kotlin 标准库(多平台)上获取当前的 unixtime

我有一个 Kotlin 多平台项目,我想在共享代码中获取当前的 unixtime。

你如何在 Kotlin 标准库中做到这一点?

datetime standard-library unix-timestamp kotlin current-time

5
推荐指数
2
解决办法
600
查看次数