导航:首页 > 编程大全 > linux时间戳转换工具

linux时间戳转换工具

发布时间:2023-09-22 04:07:41

1. linux 时间同步

在Linux系统中存在两个时钟时间,分别是

硬件时钟是指的在主板上的时钟设备,也就是通常可以在BIOS画面设置的时钟,即使关机状态也可以计算时间。

而系统时钟则是指Kernel中的时钟,其值是由1970年1月1日00:00:00 UTC时间至当前时间所经历的秒数总和。当Linux启动的时候,系统时钟会读取硬件时钟的设定,之后系统时钟独立运作。长时间运行两者可能将会产生误差。另外所有的Linux相关指令都是读取系统时钟指定的,如date。

我们这里讨论的是系统时间。

NTP,网络时间协议,使用 123/udp 端口进行网络时钟同步;NTP 是仍在使用中的最古老的网络传输协议之一(1985 年前开始)。

以前Linux时间同步基本是使用 ntpdate 和 ntpd 这两个工具实现的,但是这两个工具已经很古老了。

【注】ntpdate和ntpd是互斥的,两者不能同时使用。ntpd是步进式平滑的逐渐调整时间,而ntpdate是断点式更新时间。

RHEL/CentOS 7.x 已经将 chrony 作为默认时间同步工具了。

其他Linux (如 ubuntu) 使用 systemd-timesyncd 服务。

chrony 是 RedHat 开发的,它是网络时间协议(NTP)的另一种实现;

RHEL/CentOS 7.x 的默认时间同步工具;

chrony 可以同时做为 ntp 服务的客户端和服务端;安装完后有两个程序 chronyd、chronyc:

chronyd 是一个 daemon 守护进程,chronyc 是用来监控 chronyd 性能和配置参数的命令行工具。

系统版本:CentOS 7.5

chrony_server(relay):10.0.0.4
chrony_client:10.0.0.5

Edit file /etc/chrony.conf

默认已经启动,不需要调整

example:

配置 chrony

edit file: /etc/chrony.conf

再次用chronyc 命令检查,比较它与chronyd server的差异

systemd-timesyncd 是一个用于跨网络同步系统时钟的守护服务。它实现了一个 SNTP 客户端,但更轻量级,更集成systemd。

systemd-timesyncd 启动时会读取 /etc/systemd/timesyncd.conf 配置文件,内容如下:

你可以输入你希望使用的其它时间服务器,比如你自己的本地 NTP 服务器,在 NTP= 行上输入一个以空格分隔的服务器列表。

如果服务器可以直接连接internet,不用修改默认配置;如果在内网,需要单独指定。

在最新的 Ubuntu 版本中,timedatectl 替代了老旧的 ntpdate。默认情况下,timedatectl 在系统启动的时候会立刻同步时间,并在稍后网络连接激活后通过 socket 再次检查一次。

timesyncd 替代了 ntpd 的客户端的部分。默认情况下 timesyncd 会定期检测并同步时间。它还会在本地存储更新的时间,以便在系统重启时做时间单步调整。

通过 timedatectl 和 timesyncd 设置的当前时间状态和时间配置,可以使用 timedatectl status 命令来进行确认。

由于 timedatectl 的存在,各发行版已经弃用了 ntpdate,默认不再进行安装。

timedatectl
timedatectl status ,查看时间同步状态;
timedatectl set-ntp true ,开启网络时间同步;

timedatectl set-timezone ZONE ,设置时区。

NTP synchronized: yes 表示时间是同步状态。

查看服务状态以及从哪个ntp server同步时间。

NTP:软件层面实现,成本低。同步精度10ms左右。

PTP:需要网络接口具备在物理层提供时间戳的功能,同步精度优于100ns,局域网的节点需要使用支持PTP功能的交换机。局域网网络接点不支持PTP的话,只能同不到us,而且受网络背景流量影响。

2. linux下 如何将年月日时分秒格式转换为秒

什么语言实现?
+ ====== 如何在不同编程语言中实现普通时间 → Unix时间戳(Unix timestamp)? ======
+
+ java long epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00");
+
+ JavaScript var commonTime = new Date(Date.UTC(year, month - 1, day, hour, minute, second))
+
+ MySQL SELECT unix_timestamp(time) 时间格式: YYYY-MM-DD HH:MM:SS 或 YYMMDD 或 YYYYMMDD
+
+ Perl 先 use Time::Local 然后 my $time = timelocal($sec, $min, $hour, $day, $month, $year);
+
+ PHP mktime(hour, minute, second, day, month, year)
+
+ PostgreSQL SELECT extract(epoch FROM date('YYYY-MM-DD HH:MM:SS'));
+
+ Python 先 import time 然后 int(time.mktime(time.strptime('YYYY-MM-DD HH:MM:SS', '%Y-%m-%d %H:%M:%S')))
+
+ Ruby Time.local(year, month, day, hour, minute, second)
+
+ SQL Server SELECT DATEDIFF(s, '1970-01-01 00:00:00', time)
+
+ Unix / Linux date +%s -d"Jan 1, 1970 00:00:01"
+
+ VBScript / ASP DateDiff("s", "01/01/1970 00:00:00", time)

3. linux怎么将时间戳转换为时间

可以用date的-d参数,致于函数可以自己写一个:
date命令可以将标准的时间格式转换成版unix时间戳
例如:权
12#
date
-d
'2014-11-24
13:10'
+%s1416805800同样也可以使用date命令将unix时间戳转换成标准的时间格式
例如:
12#
date
-d
'1970-01-01
UTC
1416805800
seconds'Mon
Nov
24
13:10:00
CST
2014

4. Linux 系统dmesg 时间戳转换为易于阅读的格式2022-5-20

Linux 系统dmesg 时间戳转换为易于阅读的格式

Linux内核的 dmesg 结果显示了时间戳。 从内核[启动时间[开始] ,是秒数。
~# dmesg -h 查看帮助
-T,–ctime
打印人类可读的时间戳。
请注意,时间戳记可能不正确! 挂起/恢复系统后,用于日志的时间源不会更新。

5. linux时间戳命令

date指令相关用法示例

date 用法: date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

直接输入date

%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到当前为为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)

阅读全文

与linux时间戳转换工具相关的资料

热点内容
api源码分享网站 浏览:511
小米复制文件找不到 浏览:959
什么是网络层 浏览:73
如何利用编程做多文件数据合并 浏览:666
java如何用tcp发送16进制协议 浏览:975
js获取当天 浏览:637
在什么网站看战狼2 浏览:881
win7桌面工具栏不见了 浏览:346
qq群几个管理员 浏览:598
录光盘怎么找不到文件 浏览:885
flip5怎么连app 浏览:273
五个g的文件怎么传到u盘 浏览:316
如何用编程编译运行出心形图案 浏览:486
linuxcentos64vpn 浏览:328
桔城pdf转换成word转换器 浏览:754
java数组排重 浏览:846
1703版win10 浏览:357
windows文件上传 浏览:111
精通jsp编程技术 浏览:139
电脑软件删不了提示找不到文件 浏览:223

友情链接