Linux日期和时间的那些事儿

http://embeddedlinux.org.cn/emb-linux/entry-level/201311/09-2672.html

自己还是稚嫩啊..

除了年龄

Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,当Linux启动时,系统时钟会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作

如何查看系统的日期和时间?

$ date
Tue Oct 16 11:18:32 CST 2012

date支持格式化输出,如

$ date +”%r %n%a %b %d, %Y”
11:27:14 AM
Tue Oct 16, 2012

显示指定的日期与时间

$ date -d “+1 month”
Fri Nov 16 11:31:10 CST 2012

详见:http://wiki.51osos.com/wiki/Date

显示日历

$ cal
October 2012
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

详见:http://wiki.51osos.com/wiki/Cal

如何修改系统日期和时间?

使用date命令的-s参数.

#date -s 12/4/2011 #date -s 14:15:00

date -s ’2011/12/4 14:15:00′

如何查看硬件时钟?

# hwclock –show
Tue 16 Oct 2012 09:19:57 PM CST -0.844514 seconds

如何设置硬件时钟?

# hwclock –set –date=”09/17/2003 13:26:00″

# hwclock –hctosys //硬件时钟与系统时钟同步

# hwclock –systohc //系统时钟与硬件时钟同步

硬件时钟也可以通过clock命令来查看和设置.

时区

UTC Universal Time Coordinated,世界标准时间

GMT Greenwich Mean Time,格林尼治时间

CST China standard Time ,中国标准时间

比如设置设置时区为CST

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

NTP

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正,且可介由加密确认的方式来防止恶毒的协议攻击。

官方网站:  http://www.pool.ntp.org/en/

可使用ntpdate同步,服务器可加crontab

# ntpdate cn.pool.ntp.org

使用time命令获取命令执行时间

$ time ls -Rl dir/*
[...]
real 0m22.156s
user 0m1.652s
sys 0m4.772s

Linux 文件的时间概念

(1) modification time (mtime,修改时间),是文件内容修改的时间,用命令ls -l默认显示的就是这个时间.

(2)status time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。

(3)access time (atime,访问时间):当读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。

可使用 ls -l –time=atime –full-time 和 ls -l –time=ctime –full-time 来查看.另外可以用stat命令来查看.

$ stat README.md
File: `README.md’
Size: 25 Blocks: 8 IO Block: 4096 regular file
Device: 809h/2057d Inode: 2755432 Links: 1
Access: (0664/-rw-rw-r–) Uid: ( 1000/ diglike) Gid: ( 1000/ diglike)
Access: 2012-09-21 15:36:42.238294913 +0800
Modify: 2012-09-21 15:35:31.626295155 +0800
Change: 2012-09-21 15:35:31.750295154 +0800
Birth: -
$ ls –full-time README.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35:31.626295155 +0800 README.md
$ ls –time=atime –full-time README.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:36:42.238294913 +0800 README.md
$ ls –time=ctime –full-time README.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35:31.750295154 +0800 README.md

如何修改Linux文件的访问时间和修改时间?

可以使用touch命令来修改.

-a  参数只修改atime

-m 参数只修改mtime

-c 参数不创建文件

-t  [[CC]YY]MMDDhhmm[.ss]  修改为指定时间

如:

touch -t 1210011224.30 abc

touch -d “5 days ago” abc

定制ls输出的日期和时间格式

每个Linux系统可能不一样,由TIME_STYLE 环境变量控制.以下是Ubuntu 12.04的默认输出格式:

$ll  README.md

-rw-rw-r–  1 diglike diglike   25 Sep 21 15:35 README.md

我修改后显示为

$ ll README.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35 README.md

因为我在.bashrc 中添加了export TIME_STYLE=long-iso

还可以定制如

$ export TIME_STYLE="+%Y-%m-%d %H:%M:%S %z"

本文永久更新链接:http://embeddedlinux.org.cn/emb-linux/entry-level/201311/09-2672.html

[转帖]Linux日期和时间的那些事儿的更多相关文章

  1. linux date 格式化时间和日期

    [root@108test ~]# date -d today +"%Y-%m-%d" 2008-05-07   [root@108test ~]# date -d today + ...

  2. (Linux基础学习)第四章:Linux系统中的日期和时间介绍和ntpdate命令

    第1节:日期和时间1.Linux的两种时钟:系统时钟:由Linux内核通过CPU的工作频率进行的硬件时钟:主板2.相关命令date 显示和设置系统时间hwclock,clock 显示硬件时钟-s,-- ...

  3. linux 实用指令时间日期类

    linux 使用指令时间日期类 data 显示当前日期 基本语法 date 显示当前时间 date+%Y 显示当前年份 date+%m 显示当前月份 date+%d 显示当前是哪一天 date &qu ...

  4. Linux date命令 - 显示和设置系统日期与时间

    操作系统上的时间也许只是当做一个时钟.特别在控制台下, 我们通常并不认为时间有什么重要的.但是对于管理员,这种认识是错误的.你知道错误的日期和时间会导致你不能编译程序么? 因为日期和时间很重要,这或许 ...

  5. Linux C 中获取local日期和时间 time()&localtime()函数

    1.  time() 函数 /* time - 获取计算机系统当前的日历时间(Calender Time) * 处理日期时间的函数都是以本函数的返回值为基础进行运算 * * 函数原型: * #incl ...

  6. Linux命令应用大词典-第8章 日期和时间

    8.1 cal:显示日历信息 8.2 date:显示和设置系统日期和时间 8.3 hwclock:查看和设置硬件时钟 8.4 clock:查看和设置硬件时钟 8.5 clockdiff:主机之间测量时 ...

  7. python笔记7:日期和时间

    Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示. 时间 ...

  8. 查看修改Linux时区和时间

    查看/修改Linux时区和时间 一.时区 1. 查看当前时区 date -R 2. 修改设置时区 方法(1) tzselect 方法(2) 仅限于RedHat Linux 和 CentOS timec ...

  9. 如何查看、修改Linux的系统时间

    如题: 如何修改Linux的系统时间? date -s 05/27/2011 date -s 10:24:00 clock -w 就这三条命令就OK了! 查看/修改Linux时区和时间 一.时区 1. ...

随机推荐

  1. loj#6285 数列分块入门 9 ( 回 滚 )

    题目 :  链接 :https://loj.ac/problem/6285 题意:给出一个长为 n的数列,以及 n个操作,操作涉及询问区间的最小众数. 思路:虽然这不是一道 回滚莫队题,就是 暴力分块 ...

  2. Codeforces Round #521 (Div.3)题解

    A过水,不讲 题解 CF1077B [Disturbed People] 这题就是个显而易见的贪心可是我考场上差点没想出来 显然把一户被打扰的人家的右边人家的灯关掉肯定比把左边的灯关掉 从左到右扫一遍 ...

  3. bzoj2688 Green Hackenbush

    (没有嘟嘟嘟) 权限题,请各位自己想办法交.不过代码正确性是可以保证的,至于为啥那不能说. 刚学完卡特兰数,就给我这种神题,我除了知道\(n\)个点的不同形态二叉树的数目是卡特兰数外,别的就不会了. ...

  4. pandas常用操作命令大全

    网上的有个别不对 实际敲了一下  有补充了点常用的环境IDE anaconda  python3.7 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 s:任意的 ...

  5. Egyptian Collegiate Programming Contest (ECPC 2015)

    题目链接:https://vjudge.net/contest/155219#overview. A题,用全排列来找出比当前这个数字字典序还大的排列有几个,然后前缀和dp即可.据说可以康拓展开来快速找 ...

  6. .net core 修改 Identity/AspNetUsers 数据库

    众所周知,.net core有一套完整的用户管理功能.使用它就能实现用户的管理及登录登出功能.现在问题来了,我们有时候需要添加一些字段,该怎么办呢?当然是修改他呀.修改方法参考链接:https://m ...

  7. 学习ArrayList的扩容机制

    基于jdk8 1.首先我们看new ArrayList中 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDA ...

  8. Zynq_soc学习

    Zynq_soc学习 SFP高速串行通信得搞来看看 最小系统 PL端时钟配置: 配置DDR控制器,主要是添加DDR正确的型号 外设电平接口配置: BANK0:LVCMOS3.3 BANK1:LVCMO ...

  9. About Xi’an

    Introduction Ancient Capital It is the birthplace of the Chinese Nation, is one of the four ancient ...

  10. OpenCV学习笔记(2)——如何用OpenCV处理视频

    如何用OpenCV处理视频 读取视频文件,显示视频,保存视频文件 从摄像头获取并显示视频 1.用摄像头捕获视频 为了获取视频,需要创建一个VideoCapature对象.其参数可以是设备的索引号,也可 ...