标签: unix-timestamp

Unix 纪元时间在闰年涂抹时钟上的表现如何?

考虑一台机器,其时间在闰秒期间被中午到中午的线性涂抹所涂抹。

我想知道系统时钟如何在涂抹期间提供准确的纪元时间。

例子:

  • 闰秒定于2016年12月31日。

  • 在机器上,12 月 31 日 11:59:00 的 Unix 时间戳是1483185540

  • 中午开始涂抹,这意味着下午 1:30 系统的本地时钟已经落后 TAI 和 UTC 几微秒。Epoch 时间戳应该是1483191000(正好 1 小时 31 分钟后),这对于 TAI/UTC 来说不再准确,因为 Epoch 不考虑闰秒
  • UTC 中午 12 点增加一秒:晚上 11:59:60,本地污迹时钟应正常继续
  • 直到 1 月 1 日中午,全球 UTC 和本地 UTC 再次同步,本地 Epoch 时钟现在比全球 Epoch/TAI 落后一整秒

如何解决这个不准确的问题?一旦系统知道发生了闰秒,本地纪元时间是否会跳过一秒?或者说这个问题是如何处理的?
它是否取决于用于计算时间的时钟的实现?如果是这样,GNU 的 coreutils 如何date处理这个问题?

time gnu date unix-timestamp leap-second

4
推荐指数
1
解决办法
701
查看次数

在 Python (3.x) 中获取今天 UTC 上午 12 点的纪元的简单方法?

我试图用 Python 计算出一天开始的纪元(UTC 午夜 12 点)。我找到了这个片段:

today = datetime.date.today()
time.mktime((today.year, today.month, today.day, 0, 0, 0, 0, 0, 0))
Run Code Online (Sandbox Code Playgroud)

但由此产生的纪元指向今天凌晨 5 点的日期。我需要这个的原因是因为我有一个执行 SQL 命令的脚本,需要使用纪元时间进行过滤(出于某种原因,通过本机 SQL 转换或提取纪元会导致我的查询在 5 分钟内完成,而不是 12 秒) 。我猜测我上面放置的代码片段使用了我的本地机器时间。

unix-timestamp python-3.x

4
推荐指数
1
解决办法
4290
查看次数

在 Unix Timestamp Kotlin 中获取当前时间?

如何在 kotlin 中以整数形式获取 Unix 时间戳格式的当前时间?

unix-timestamp kotlin

4
推荐指数
1
解决办法
6760
查看次数

如何在C中分解unix时间

这看起来似乎任何人都不应该要做的,但我正在一个内核模块上的嵌入式系统(的OpenWRT),其中似乎time.h 包括timespectime_t类型,以及clock_gettimegmtime功能,但包括localtime,ctime,time或者,或者,批判性地,tm类型.

当我尝试将返回指针从gmtime强制转换为我自己的struct时,我得到了一个段错误.

所以我想我会满足于从两种方式解决这个问题 - 想弄清楚如何访问这个缺失的类型,或者如何推出我自己的方法来分解unix时间戳.

c linux time.h unix-timestamp

3
推荐指数
1
解决办法
3798
查看次数

转换为unix时间戳不正确

我有一个我写的功能(如果有一个很好的标准替代品,请告诉我......)

time_t get_unix_time(string time_str) {
    time_t loctime;
    time(&loctime);

    struct tm *given_time;
    time_str = time_str.substr(0, time_str.find_first_of('.'));

    replace(time_str.begin(), time_str.end(), ':', ',');
    replace(time_str.begin(), time_str.end(), '-', ',');
    replace(time_str.begin(), time_str.end(), '/', ',');
    replace(time_str.begin(), time_str.end(), ' ', ',');

    given_time = localtime(&loctime);
    vector<string> trecord = split_string(time_str, ',');

    given_time->tm_year = atoi(trecord.at(0).c_str()) - 1900;
    given_time->tm_mon  = atoi(trecord.at(1).c_str()) - 1;
    given_time->tm_mday = atoi(trecord.at(2).c_str());
    given_time->tm_hour = atoi(trecord.at(3).c_str());
    given_time->tm_min  = atoi(trecord.at(4).c_str());
    given_time->tm_sec  = atoi(trecord.at(5).c_str());

    return mktime(given_time);
}
Run Code Online (Sandbox Code Playgroud)

该函数的输入(time_str)格式为1970-01-01 00:00:00.0.split_string()函数将字符串time_str拆分为包含以下内容的向量:

{1970,01,01,00,00,00}

用于填充given_time结构.

我编写了一个函数来测试它,并将其完全传递给了输入(epoch的开始).但是,它给我回来的时间是21600,即1970-01-01 06:00:00,或UTC + 6 …

c c++ mktime gmt unix-timestamp

3
推荐指数
1
解决办法
2622
查看次数

获取UNIX时间戳的正确小时

我认为这是一个愚蠢的问题,但似乎我找不到答案.

我有这个时间戳:1295598602.

在我的PHP脚本中,我有:

$ date = date('Ym-d',1295598602); $ hour = date('H',1295598602).':00';

返回:

日期:2011-01-21
时间:03:00

现在我去了一个在线转换网站来测试这个.我用过这个.但似乎对于这个时间戳值而言

星期五,2011年1月21日08:30:02 GMT

现在,哪一个是正确的?

php unix-timestamp

3
推荐指数
1
解决办法
9591
查看次数

Matplotlib和时间戳引起麻烦

为什么这不起作用?怎么解决?我试图绘制一个图形,其中x轴是时间轴,y值是csv文件中的第二列.我希望x plot标签采用更易读的格式......

testi.csv

1315655275.0,0.1,1.4
1325655275.0,0.11,2.2
1335655275.0,0.23,11.96
1345655275.0,0.81,63.18
1355655275.0,2.76,560.28
1365655275.0,5.54,609.4
1375655275.0,7.21,576.8
Run Code Online (Sandbox Code Playgroud)

testi2.py

import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.dates as md
data = np.genfromtxt('testi.csv', delimiter=',', names=['t', 'btc', 'eur'])
plt.xkcd()
plt.plot(data['t'], data['btc'], label='the data')
plt.xticks(rotation=75)
ax=plt.gca()
xfmt = md.DateFormatter('%Y-%m-%d %H:%M:%S')
ax.xaxis.set_major_formatter(xfmt)
plt.savefig('testi2.png')
Run Code Online (Sandbox Code Playgroud)

这是我给"python <testi2.py"后的错误信息:

Traceback (most recent call last):
  File "<stdin>", line 13, in <module>
  File "/usr/local/lib/python2.7/dist-packages/matplotlib-1.4.x-py2.7-linux-i686.egg/matplotlib/pyplot.py", line 564, in savefig
    return fig.savefig(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib-1.4.x-py2.7-linux-i686.egg/matplotlib/figure.py", line 1421, in savefig
    self.canvas.print_figure(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib-1.4.x-py2.7-linux-i686.egg/matplotlib/backend_bases.py", line 2220, …
Run Code Online (Sandbox Code Playgroud)

plot timestamp matplotlib unix-timestamp

3
推荐指数
1
解决办法
3058
查看次数

从unix时间转换的问题

在MySQL中尝试处理unix时间戳时,我发现了一些奇怪的东西.我注意到在转换为任意日期的unix时间戳时,介于'00:59:59''01:00:00'之间的时间超过1秒.深入挖掘我有以下示例查询,结果我不明白:

SELECT FROM_UNIXTIME(1382835600) AS a, FROM_UNIXTIME(1382832000) AS b;
+---------------------+---------------------+
| a                   | b                   |
+---------------------+---------------------+
| 2013-10-27 01:00:00 | 2013-10-27 01:00:00 |
+---------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)

两个unix时间戳相距1小时(3600秒),但生成的时间戳相同.也许这是一个时区问题,但它毕竟是在同一台服务器上.

mysql timezone timestamp unix-timestamp

3
推荐指数
1
解决办法
188
查看次数

检查自日期过去的时间是否超过X天

我需要创建一个PHP脚本,从数据库(日志,消息,登录等)中提取各种内容的时间戳,如果它们超过X天数,则删除它们.我很擅长与时间一起工作,并且有点难以做到最好.

我意识到我可以使用explode()将字符串中的日/月/年分开,并将它们与一堆If语句进行比较,但是想使用更有效的方法.这样的事情是正确的做法吗?

$dt = "2011-03-19 10:05:44";

//if $dt is older than 90 days
if((time()-(60*24*90)) > strtotime($dt))
{

}
Run Code Online (Sandbox Code Playgroud)

从时间()减去(分钟*小时*天)或数字是否错误?

php time datetime timestamp unix-timestamp

3
推荐指数
1
解决办法
3385
查看次数

正确处理闰秒

在闰秒之前和期间,似乎呼叫new Date()将返回23:59:59两次(一次在闰秒之前,一次在闰秒期间),而不是23:59:59和23:59:60.

有没有办法(没有在应用程序中实现NTP客户端,或检查时钟倒退或重复自己)以确定给定秒是否是闰秒,以便正确呈现23:59 :60给用户?

就此而言,主机操作系统是否有任何钩子来确定它是在前或后闰秒?

java time ntp unix-timestamp leap-second

3
推荐指数
1
解决办法
370
查看次数

标签 统计

unix-timestamp ×10

time ×3

timestamp ×3

c ×2

leap-second ×2

php ×2

c++ ×1

date ×1

datetime ×1

gmt ×1

gnu ×1

java ×1

kotlin ×1

linux ×1

matplotlib ×1

mktime ×1

mysql ×1

ntp ×1

plot ×1

python-3.x ×1

time.h ×1

timezone ×1