linux系统设置系统时间的方法
Linux系统设置系统时间有两种方法:
1.使用命令date
2.使用系统调用settimeofday,gettimeofday
注意:不管使用上面哪一种方法都必须是root权限。
如果系统连接上了网络,设置的时间和网络时间不同,系统会自动使用网络中的时间。
1.使用命令date
在命令行中可以使用:
sudo date --s "2020-6-30 10:10:10"
2.使用系统调用settimeofday
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
#include <unistd.h>static void time_set(int year,int month,int day,int hour,int min,int sec)
{struct tm tptr;struct timeval tv;tptr.tm_year = year - 1900;tptr.tm_mon = month - 1;tptr.tm_mday = day;tptr.tm_hour = hour;tptr.tm_min = min;tptr.tm_sec = sec;tv.tv_sec = mktime(&tptr);tv.tv_usec = 0;settimeofday(&tv, NULL);system(sudo hwclock -w);//将设置好的系统时间写入到rtc中
}
C语言settimeofday()函数:设置当前时间戳
头文件:
1 |
#include <sys/time.h> #include <unistd.h> |
定义函数:
1 |
int settimeofday(const struct timeval *tv, const struct timezone *tz); |
函数说明:
settimeofday()会把目前时间设成由tv 所指的结构信息,当地时区信息则设成tz 所指的结构。详细的说明请参考gettimeofday()。
注意,在Linux下,只有root 权限才能使用此函数修改时间。
返回值:成功则返回0,失败返回-1,错误代码存于errno。
错误代码:
EPERM 并非由root 权限调用settimeofday(),权限不够。
EINVAL 时区或某个数据是不正确的,无法正确设置时间。
C语言gettimeofday()函数:获取当前时间
头文件:
1 |
#include <sys/time.h> #include <unistd.h> |
定义函数:int gettimeofday (struct timeval * tv, struct timezone * tz);
函数说明:gettimeofday()会把目前的时间有tv 所指的结构返回,当地时区的信息则放到tz 所指的结构中。
timeval 结构定义为:
1 2 3 4 |
struct timeval{ long tv_sec; //秒 long tv_usec; //微秒 }; |
timezone 结构定义为:
1 2 3 4 5 |
struct timezone { int tz_minuteswest; //和Greenwich 时间差了多少分钟 int tz_dsttime; //日光节约时间的状态 }; |
上述两个结构都定义在/usr/include/sys/time.h. tz_dsttime 所代表的状态如下
1 2 3 4 5 6 7 8 9 10 11 |
DST_NONE //不使用 DST_USA //美国 DST_AUST //澳洲 DST_WET //西欧 DST_MET //中欧 DST_EET //东欧 DST_CAN //加拿大 DST_GB //大不列颠 DST_RUM //罗马尼亚 DST_TUR //土耳其 DST_AUSTALT //澳洲(1986 年以后) |
返回值:成功则返回0,失败返回-1,错误代码存于errno。
附加说明:EFAULT 指针tv 和tz 所指的内存空间超出存取权限。
linux系统设置系统时间的方法相关推荐
- 修改linux系统时间的方法(date命令)
修改linux系统时间的方法(date命令) 来源:互联网 作者:佚名 时间:11-18 23:22:27 [大 中 小] date命令不仅可以显示系统当前时间,还可以用它来修改系统时间,下面简单的介 ...
- linux获得系统时间 c,linux c 获取系统时间的方法
比如获取当前年份: /* 获取当前系统时间 暂时不使用 int iyear = 0; int sysyear = 0; time_t now; struct tm *timenow; time(&am ...
- Linux系统时间修改方法
Linux系统时间修改方法 1. 第一种方式 1.将系统时间设定成下午5点55分55秒的命令命令 : "date -s 17:55:55"#date -s "12:12: ...
- linux锁定系统时间设置,设置linux系统时间的方法
尝试了好多,都是因为权限问题失败,但是总结出了几种思路: 1 通过linux指令进行设置: date -s "20091112 18:30:50" &&hwcloc ...
- linux 脚本设置时间戳,修改linux系统时间的方法(date命令)
命令格式为: date -s 时间字符串 例如只修改系统的日期,不修改时间(时分秒) date -s 2012-08-02 或只修改时间不修改日期 date -s 10:08:00 当然也可以同时修改 ...
- linux 修改系统时间和日期,Linux 修改系统日期和时间
Linux 修改系统日期和时间 一.文本模式下修改 命令及参数选项:date -s 示例如下: #date -s 04/11/2008 ------将系统时间设定成2008年4月11日 #date - ...
- linux获取系统时间和时间戳
linux获取系统时间和时间戳 linux下c/c++编程需要系统时间,一个是获取时间戳和计算时间差,一个获取当前时间用来作为文件名等,方法和例子如下: 可以用man命令查询time,localtim ...
- 笔记1:VC获取系统时间的方法
笔记1:VC 获取系统时间的方法 推荐的获取方法 获取时间方法种类 各种获取时间方法详解 方法1:time_t变量 和 time(time_t*)方法 方法2:system(" time&q ...
- android系统应用程序设置时间,Android应用程序设置系统时间的方法
Android应用程序获取系统时间的方法: System.currentTimeMillis(); Android SDK虽然提供了设置系统时间的方法SystemClock.setCurrentTim ...
最新文章
- 观察者模式定义了一种一对多的对象关系,当一个对象改变时,此对象对应的监控对象跟着改变!!!...
- 计算机仿真作业三,计算机仿真技术作业三.doc
- 最大公约数之和——极限版II
- C语言试题九十一之写一个程序,用公式π/4=1-1/3+1/5-1/7+...,求π的近似值,直到最后一项的绝对值小于10^-8为止。
- android 居右属性,使用layoutDirection属性设置布局靠左或靠右
- 《大数据》2020年第6期目次摘要
- linux服务器上文件编码格式转化shell
- MongoDB 教程五: MongoDB固定集合和性能优化 (索引Indexes, 优化器, 慢查询profile)
- Spring解析 XML 的原理,你搞定了么?
- Python程序员薪资 你不知道的事
- 李时珍食物疗法150条 百年难遇的养生千古名方
- 怎么将flv视频转换成mp4格式
- KUBERNETES安装及访问web页面
- 微信支付开发 服务商模式 签名错误
- 中国联通沃商店校园大使招募书
- Android日历控件
- Base64与bitmap之间相互转换
- 轰隆隆-小站地址原理整理分析
- 几款.Net加密/加壳工具的比较
- android 播放器sdk,Android端SDK的使用
热门文章
- 中国食用油市场供需调研与投资战略分析报告2022年版
- Keil 5中折叠代码
- 理财指南: 无论工资多少,记得至少要分成六份
- mix2s android9降级,升级安卓9.0后将无法降级,MIX2S降级后相机无法使用!
- 微博html5版赵丽颖,人红是非多,赵丽颖微博设置半年可见引热议,“劈叉梗”再被提起...
- 计算机网络采用什么标识主机,2-网络中计算机的标识----IP地址
- i3 10100F和i5 9400F哪个好 i310100f和i5 9400f性能差多少
- Outlook签名设置不完全指北
- mysql查看表结构和编码
- Oracle SQL语句性能优化方法大全