linux系统时区设置
Linux终端命令系统时间与时钟同步

Linux终端命令系统时间与时钟同步在Linux操作系统中,系统时间和时钟同步起着至关重要的作用。
正确的系统时间和时钟同步可以确保计算机的各项操作正常进行,并避免由于时间差异引起的问题。
本文将介绍Linux终端命令中常用的方法,用于同步系统时间和时钟。
一、查看当前系统时间和时钟状态1. date命令date命令是Linux中用于显示和修改系统日期与时间的命令。
要查看当前系统时间,只需在终端中输入以下命令:```shelldate```运行该命令后,终端会返回当前系统的日期和时间信息。
2. timedatectl命令timedatectl是Linux提供的时间和日期管理工具,可以查看和配置系统的时间和时区设置。
要查看当前系统时间和时钟状态,可以在终端中输入以下命令:```shelltimedatectl```终端会返回当前系统的时间、时区、夏令时状态等信息。
二、同步系统时间与时钟1. 使用ntpdate命令ntpdate命令是Linux中常用的同步系统时间和时钟的命令。
ntpdate通过与NTP服务器进行通信,自动调整系统的时间。
要使用ntpdate命令同步系统时间,可以在终端中输入以下命令: ```shellsudo ntpdate 服务器地址```其中,服务器地址为可用的NTP服务器地址,可以选择离自己地理位置近、可靠性高的服务器进行同步。
2. 使用timedatectl命令timedatectl命令同样可以用于同步系统时间和时钟。
要使用timedatectl命令同步系统时间,可以在终端中输入以下命令: ```shellsudo timedatectl set-time "YYYY-MM-DD HH:MM:SS"```其中,YYYY-MM-DD代表年月日,HH:MM:SS代表时分秒,将其替换为实际的时间参数即可。
三、自动同步系统时间为了确保系统时间始终与时钟同步,可以设置自动同步时间的功能。
Linux系统时间、时区、夏令时杂谈

Linux系统时间、时区、夏令时杂谈Linux系统时间、时区、夏令时杂谈本篇博⽂对Linux⽤户层的时间做⼀番深层次的探究,设计各个时间概念,获取⽅式,源码窥探。
⼀、⽰例先从⼀个基本⽰例开始,源码如下:1static void dump_tm(const struct tm *t, const char *var)2 {3 d("dump %s --------\n", var);4 d("%d-%d-%d ", t->tm_year, t->tm_mon, t->tm_mday);5 d("%d:%d:%d\n", t->tm_hour, t->tm_min, t->tm_sec);6 d("tm_wday: %d\n", t->tm_wday);7 d("tm_yday: %d\n", t->tm_yday);8 d("tm_isdst: %d\n\n", t->tm_isdst);9 }1011static void dump_tv(const struct timeval *tv, const char *var)12 {13 d("dump %s --------\n", var);14 d("%ld(s) %ld(us)\n\n", tv->tv_sec, tv->tv_usec);15 }1617static void dump_ts(const struct timespec *ts, const char *var)18 {19 d("dump %s --------\n", var);20 d("%ld(s) %ld(ns)\n\n", ts->tv_sec, ts->tv_nsec);21 }2223int main(int argc, char *argv[])24 {25 system("date -R");26 d("\n\n");27 time_t time_now = time(NULL);28 d("time_now: %ld\n", time_now);2930// int gettimeofday(struct timeval *tv, struct timezone *tz);31struct timeval tv;32 gettimeofday(&tv, NULL);33 dump_tv(&tv, "tv");3435// struct tm *gmtime_r(const time_t *timep, struct tm *result);36struct tm tm_gmt;37 gmtime_r(&time_now, &tm_gmt);38 dump_tm(&tm_gmt, "tm_gmt");3940 time_t time_mk_utc = mktime(&tm_gmt);41 d("time_mk_utc: %ld\n\n", time_mk_utc);4243// struct tm *localtime_r(const time_t *timep, struct tm *result);44struct tm tm_loc;45 localtime_r(&time_now, &tm_loc);46 dump_tm(&tm_loc, "tm_loc");4748 time_t time_mk_loc = mktime(&tm_loc);49 d("time_mk_loc: %ld\n\n", time_mk_loc);5051// int clock_gettime(clockid_t clk_id, struct timespec *tp);52struct timespec tp;53if (clock_gettime(CLOCK_REALTIME, &tp) < 0) {54 perror("CLOCK_REALTIME:");55 } else {56 dump_ts(&tp, "CLOCK_REALTIME");57 }5859if (clock_gettime(CLOCK_MONOTONIC, &tp) < 0) {60 perror("CLOCK_MONOTONIC:");61 } else {62 system("cat /proc/uptime");63 dump_ts(&tp, "CLOCK_MONOTONIC");64 }6566return0;67 }运⾏结果:1 Fri, 14 Sep 201810:45:39 +0800234 time_now: 15368931395 dump tv --------61536893139(s) 391362(us)78 dump tm_gmt --------9118-8-142:45:3910 tm_wday: 511 tm_yday: 25612 tm_isdst: 01314 time_mk_utc: 15368643391516 dump tm_loc --------17118-8-1410:45:3918 tm_wday: 519 tm_yday: 25620 tm_isdst: 02122 time_mk_loc: 15368931392324 dump CLOCK_REALTIME --------251536893139(s) 391606167(ns)2627253437.131983789.5328 dump CLOCK_MONOTONIC --------29253437(s) 135226931(ns)⼆、⽰例分析⾸先说下”标准时间“和”本地时间“。
Linux设置时区和修改时间

Linux设置时区和修改时间修改时区⽅法⼀:timedatectl set-timezone Asia/Shanghai >>>服务器时区设置date -s "2020-12-20 16:34:50" >>>服务器时间设置时间格式显⽰12⼩时制,如何操作?需要修改时间为24⼩时,可以修改/etc/default/locale,默认没有LC_TIME这个变量,在⽂件中增加⼀⾏:LC_TIME=en_DK.UTF-8保存退出,然后reboot重启服务器即可⽣效,date命令查看是24⼩时时间格式。
修改时区⽅法⼆:1.使⽤命令:tzselect在这⾥我们选择亚洲 Asia,确认之后选择中国(China),最后选择北京(Beijing),选择12.复制⽂件到/etc⽬录下root@ubuntu:/# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime3.再次查看时间date -R,已经修改为北京时间Linux中查看有关时间的命令是date [选项] +[格式]⾸先我们先看看单纯的date的输出结果,其中CST表⽰东⼋区。
使⽤ timedatectl命令可以查看时区使⽤date -s "yyyy-MM-dd hh:mm:ss",例如将当前系统时间设置为2021年1⽉4⽇12:00:00则使⽤date -s "2021-01-04 12:00:00"以上修改的仅仅是系统时间,由操作系统控制。
还有⼀个硬件时间。
使⽤hwclock --systohc可以将系统时间同步到硬件时间。
在CentOS 6版本,时间设置有date、hwclock命令,硬件时钟和系统时钟(1) 硬件时钟RTC(Real-Time Clock)或CMOS时钟,⼀般在主板上靠电池供电,服务器断电后也会继续运⾏。
Linux系统硬件时间12小时制和24小时

Linux系统硬件时间12⼩时制和24⼩时1 ⼀个新装的服务器默认字符集是英⽂的。
[root@localhost /]# date -R
Mon, 27 Dec 2021 13:28:25 +0800
[root@localhost /]# clock -r
Mon 27 Dec 2021 01:34:06 PM CST -0.755124 seconds 时间也表⽰12⼩时制
[root@xb-server ~]# cat /etc/locale.conf
LANG="en_US.UTF-8"
2 修改字符集source就可以将硬件时间修改为24⼩时制了
[root@localhost /]# cat /etc/locale.conf 修改为中⽂的字符集就可以了
LANG="zh_CN.UTF-8"
[root@localhost /]# source /etc/locale.conf 刷新⼀下修改的配置⽂件
[root@localhost /]# date
2021年 12⽉ 27⽇星期⼀ 13:36:46 CST
[root@localhost /]# clock -r
2021年12⽉27⽇星期⼀ 13时36分51秒 -0.540879 秒
有些服务器安装的时候不注意时区的选择
同步时区直接覆盖此⽂件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
然后最好使⽤下⾯的命令将更改写⼊bios。
同步硬件时间
clock -w
注: 可以删除重新做个软链接。
Linux终端命令中的系统时间和时区设置

Linux终端命令中的系统时间和时区设置系统时间和时区设置是使用Linux终端命令时经常需要涉及的操作。
准确设置系统时间和时区对于系统的正常运行和应用程序的正确性非常重要。
本文将介绍Linux终端中常用的命令及其用法,帮助读者了解如何准确设置系统时间和时区。
一、系统时间设置1. date命令date命令用于显示和设置系统的日期和时间。
要显示当前系统的日期和时间,只需要在终端中输入以下命令:```shelldate```该命令会以类似于以下格式的输出显示当前系统的日期和时间:```shellTue Jan 1 12:34:56 CST 2022```2. 设置特定日期和时间要设置系统的日期和时间,可以使用以下命令:```shelldate -s "YYYY-MM-DD HH:MM:SS"```其中,YYYY表示年份,MM表示月份,DD表示日期,HH表示小时,MM表示分钟,SS表示秒数。
例如,要将系统时间设置为2022年1月1日12点34分56秒,可以使用以下命令:```shelldate -s "2022-01-01 12:34:56"```二、时区设置1. 查看当前时区要查看当前系统的时区,可以使用以下命令:```shelltimedatectl show --property=Timezone```该命令会输出当前系统所使用的时区。
2. 修改时区要修改系统的时区,可以使用以下命令:```shellsudo timedatectl set-timezone 时区```其中,时区是以格林威治标准时间(GMT)为基准的地理区域。
例如,要将系统时区设置为北京时间,可以使用以下命令:```shellsudo timedatectl set-timezone Asia/Shanghai```3. 切换时区如果需要临时切换时区而不改变系统的默认时区设置,可以使用以下命令:```shellTZ=时区指定命令```其中,时区指定命令是带有时区信息的其他命令。
Linux系统修改时区JVM动态更新时区

Linux系统修改时区JVM动态更新时区修改系统时区后,不重启Tomcat而动态更新JVM时区1.自定义一个方法获取系统时区(实现原理:通过Process 对象执行系统命令“date -R”获取系统时区,该命令适用于Linux系统,Windows系统下请自行查找对应命令) ,并将其保存至静态变量中。
package com.juyuan.sync.tools;import java.io.BufferedReader;import java.io.InputStreamReader;import com.juyuan.support.AppCommon;public class ConvertTheTimeZone {/*** 获取系统时区* @author xyl*/public static void ChangeTheTimeZone(){try {Process ps = Runtime.getRuntime().exec("date -R");BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));StringBuffer sb = new StringBuffer();String line;while ((line = br.readLine()) != null) {sb.append(line);System.out.println(line);}String result = sb.toString();String [] param=result.split(" ");System.out.println(param[5]);//System.out.println(param[5].getClass());if(param[5].trim().equals("+1100")){AppCommon.systemTimeZone="+1100";}else if(param[5].trim().equals("+1000")){AppCommon.systemTimeZone="+1000";}} catch (Exception e) {e.printStackTrace();}}}2. 在用户成功登入系统时根据步骤1获取的时区设置JVM对应的时区,对应代码如下:ConvertTheTimeZone.ChangeTheTimeZone();//设置JVM时区if(AppCommon.systemTimeZone.equals("+1100")){TimeZone.setDefault(TimeZone.getTimeZone("GMT+11"));/ /设置JVM默认时区}else if(AppCommon.systemTimeZone.equals("+1000")){TimeZone.setDefault(TimeZone.getTimeZone("GMT+10"));}3. 之后使用Date date=new Date();获取的时间将和系统时间同步。
linux修改系统时间和linux查看时区、修改时区的方法

linux修改系统时间和linux查看时区、修改时区的⽅法⼀、查看和修改Linux的时区1. 查看当前时区命令: "date -R"2. 修改设置Linux服务器时区⽅法 A命令: "tzselect"⽅法 B 仅限于RedHat Linux 和 CentOS命令: "timeconfig"⽅法 C 适⽤于Debian命令: "dpkg-reconfigure tzdata"3. 复制相应的时区⽂件,替换系统时区⽂件;或者创建链接⽂件cp /usr/share/zoneinfo/主时区/次时区 /etc/localtime例如:在设置中国时区使⽤亚洲/上海(+8)cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime⼆、查看和修改Linux的时间1. 查看时间和⽇期命令: "date"2.设置时间和⽇期例如:将系统⽇期设定成2009年11⽉3⽇的命令命令: "date -s 11/03/2009"将系统时间设定成下午5点55分55秒的命令命令: "date -s 17:55:55"3. 将当前时间和⽇期写⼊BIOS,避免重启后失效命令: "hwclock -w"注:date不加参数可以直接看到当前⽇期时间cal不加参数可以直接看到本⽉⽉历三、date命令的功能是显⽰和设置系统⽇期和时间。
该命令的⼀般格式为: date [选项] 显⽰时间格式(以+开头,后⾯接格式) date 设置时间格式 命令中各选项的含义分别为: -d dates, --date datestr 显⽰由datestr描述的⽇期 -s datestr, -- datestr 设置datestr 描述的⽇期 -u, --universal 显⽰或设置通⽤时间时间域 % H ⼩时(00..23) % I ⼩时(01..12) % k ⼩时(0..23) % l ⼩时(1..12) % M 分(00..59) % p 显⽰出AM或PM % r 时间(hh:mm:ss AM或PM),12⼩时 % s 从1970年1⽉1⽇00:00:00到⽬前经历的秒数 % S 秒(00..59) % T 时间(24⼩时制)(hh:mm:ss) % X 显⽰时间的格式(%H:%M:%S) % Z 时区⽇期域 % a 星期⼏的简称( Sun..Sat) % A 星期⼏的全称( Sunday..Saturday) % b ⽉的简称(Jan..Dec) % B ⽉的全称(January..December) % c ⽇期和时间( Mon Nov 8 14:12:46 CST 1999) % d ⼀个⽉的第⼏天(01..31) % D ⽇期(mm//yy) % h 和%b选项相同 % j ⼀年的第⼏天(001..366) % m ⽉(01..12) % w ⼀个星期的第⼏天(0代表星期天) % W ⼀年的第⼏个星期(00..53,星期⼀为第⼀天) % x 显⽰⽇期的格式(mm/dd/yy) % y 年的最后两个数字( 1999则是99) % Y 年(例如:1970,1996等) 需要特别说明的是,只有超级⽤户才能⽤date命令设置时间,⼀般⽤户只能⽤date命令显⽰时间。
linux系统永久修改时间

Linux系统永久修改时间
客户要求修改linux下的系统时间,使用date命令修改,一重启立马变回来,郁闷了好久,最后发现还是简单粗暴的好,直接修改时区,再使用date命令修改时间。
不会变了!不会变了!不会变了!重要的事情说三遍。
言归正传。
date命令的功能是显示和设置系统日期和时间。
输入date查看目前系统时间。
date -R是显示当前系统日期和时间。
date –s可以修改当前使用的时间和日期。
查看本机系统时间现在是美国的时间,需要修改成洛杉矶时间。
1.修改时区,设定为洛杉矶时区。
#cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
#vi /etc/sysconfig/clock
查看#more /etc/sysconfig/clock
2.修改日期,时间设定为2016年6月25日
#date -s 6/25/2016
3.修改时间,将系统的时间设定成凌晨00:38 #date -s 00:38
重启测试时间是否发生变化,OK了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux系统时区设置
系统时钟设置
格式:date 月/日时:分:年.秒
[root@localhost ~]# date 080319462010.55
二 8月 3 19:46:55 CST 2010
或使用date –set (月/日/年时:分:秒)设置时钟。
[root@localhost ~]# date –set “08/30/2010 09:50:11″(月/日/年时:分:秒)一 8月 30 09:50:11 CST 2010
查看系统时钟
[root@localhost ~]# date
日 8月 1 15:56:27 CST 2010
hwclock | clock时钟查看相同
[root@localhost ~]# hwclock –show
2010年08月01日星期日 16时07分01秒 -0.185252 seconds
设置硬件时钟
硬件时钟设置格式:hwclock | clock –set –date=(”月/日/年时:分:秒”)[root@localhost ~]# hwclock –set –date=”08/03/2010 19:57″
[root@localhost ~]# clock
2010年08月03日星期二 19时57分07秒 -0.462124 seconds
[root@localhost ~]# clock –set –date=”08/03/10 20:00″
[root@localhost ~]# hwclock
2010年08月03日星期二 20时00分08秒 -0.236903 seconds
系统与硬件时钟同步
[root@localhost ~]# hwclock –systohc
[root@localhost ~]# date
二 8月 3 19:59:23 CST 2010
[root@localhost ~]# clock
2010年08月03日星期二 19时59分32秒 -0.813133 seconds
[root@localhost ~]# clock –systohc
[root@localhost ~]# date
二 8月 3 20:00:06 CST 2010
将时钟信息永久写入BIOS中,避免重启系统时钟失效。
hwclock / clock -w
系统时区设置
使用tzselect设置系统时区。
[root@localhost ~]# tzselect
Please identify a location so that time zone rules can be set correctly. Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none – I want to specify the time zone using the Posix TZ format.
#? 5 选择亚洲
Please select a country.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 9 选择中国
Please select one of the following time zone regions.
1) east China – Beijing, Guangdong, Shanghai, etc.
2) Heilongjiang (except Mohe), Jilin
3) central China – Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
4) most of Tibet & Xinjiang
5) west Tibet & Xinjiang
#? 1 选择北京时间
The following information has been given:
China
east China – Beijing, Guangdong, Shanghai, etc.
Therefore TZ=Asia/Shanghai will be used.
Local time is now: Tue Aug 3 20:02:51 CST 2010.
Universal Time is now: Tue Aug 3 12:02:51 UTC 2010.
Is the above information OK?
1) Yes
2) No
#? 1 确认当前时间区域
使用配置文件来变更时区
如果不用tzselect命令,可通过修改区域配置文件来变更时区。
[root@localhost ~]#vi /etc/sysconfig/clock
ZONE=Asia/Shanghai
UTC=false
ARC=false
[root@localhost ~]# rm /etc/localtime
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
重启即可,或使用timeconfig来设置时区。
使用timeconfig变更时区
[root@localhost ~]# timeconfig
onfig-date – (C) 2003 Red Hat, Inc.
lqqqqqqqqqqqqu 时区选择 tqqqqqqqqqqqqqk
x x
x 为系统选择时区。
x
x x
x Asia/Sakhalin a x
x Asia/Samarkand a x
x Asia/Seoul a x
x Asia/Shanghai a x
x Asia/Singapore # x
x Asia/Taipei a x
x Asia/Tashkent a x
x Asia/Tbilisi a x
x x
x [ ] 系统时钟使用 UTC x
x x
x lqqqqqqk lqqqqqqk x
x x 确定 x x 取消 x x
x mqqqqqqj mqqqqqqj x
x x
x x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen。