如何使用命令行界面获取日期和时间?


Answers:


173

date命令将显示日期和时间。

man date如果您需要标准输出以外的其他内容,将向您展示如何将输出控制为所需的任何格式。例如:

date "+%H:%M:%S   %d/%m/%y"

将以以下格式输出日期和时间 14:09:22 09/06/2015

可以在Ubuntu手册页上找到易于阅读的手册页版本


6
+1只是为了说man date
jshthornton

我如何获得时区差异?
Ali D.

19

时间作为命令行提示符:

PS1="\@ \w$bk"

看起来像:上午11:41〜

包括在方括号中的一些鸽友:

PS1="[ \@ \w$bk ]"

看起来像:[11:36 AM〜]

将用户和本地主机以及时间添加到方括号中:

PS1="[ \u on \h \@ \w$bk ]"

看起来像:[DrPete在LittleSorrel上午10:34〜]

将提示重置为默认编号: PS1="# "

要使提示永久可用,请添加您选择的提示行,即

export PS1="\@ \w$bk "

到〜/ .profile。

无奈,我们现在要滚动...添加颜色,在.profile中定义它们,以使其更易于设置:

 # Install GNU coreutils
    bk="\[\033[0;38m\]" #means no background and white lines
    txtBlue="\[\033[0;34m\]"   #letter color blue
    txtRed="\[\033[0;31m\]"    #letter color red
    txtCyan="\[\033[1;36m\]"   #letter color cyan
    txtWhite="\[\033[1;37m\]"  #letter color white
    txtYellow="\[\033[1;33m\]" #letter color yellow

然后,彩色的提示将是:

PS1="[ $txtYellow\u on $txtCyan\h $txtRed\@ $txtWhite\w$bk ]"

很好的答案=),但有点短。
AB

我的第一个答案-现在我不再是处女了-以哪种方式扩展,叙述或链接到CLI提示信息?
drPete 2015年

我该如何使其永久化,例如。
AB

只需导出@AB Clever Answer btw :)
Sharad Gautam

1
更好的答案=更多支持
AB

16

有用于时间和日期的命令列表:

  1. 命令 date

    $ date 
    Tue Jun  9 18:04:30 EEST 2015
    
  2. 该命令zdump用于回显指定时区中的时间。

    $ zdump EEST
    EEST  Tue Jun  9 15:05:17 2015 EEST
    
  3. 时钟

    $ sudo hwclock
    Tue 09 Jun 2015 06:05:55 PM EEST  -0.656710 seconds
    
  4. 时钟,但需要安装xview-clients

    sudo apt-get install xview-clients
    
  5. 使用ntpdate命令。ntpdate用于设置系统时间,但不使用sudo它将仅打印时间和日期。

    $ ntpdate
    
    26 Jun 10:48:34 ntpdate[4748]: no servers can be used, exiting
    

11

使用Ubuntu 15.04(systemd),还timedatectl可以显示时间,并允许您更改时间以及更多内容man timedatectl

没有参数,它给

%timedatectl
警告:忽略TZ变量。仅读取系统的时区设置。

      当地时间:ke 2015-06-10 10:31:59 EEST
  通用时间:ke 2015-06-10 07:31:59 UTC
        RTC时间:ke 2015-06-10 07:31:59
       时区:欧洲/赫尔辛基(EEST,+ 0300)
     启用NTP:是
NTP已同步:是
 本地TZ中的RTC:否
      DST有效:是
 DST的最新更改:DST开始于
                  su 2015-03-29 02:59:59 EET
                  su 2015-03-29 04:00:00东部
 下次DST更改:DST在以下时间结束(时钟向后跳一小时)
                  su 2015-10-25 03:59:59东部
                  su 2015-10-25 03:00:00 EET

我使用的另一个不错的功能是timedatectl set-ntp true激活systemd-timesyncd内置的SNTP(简单网络时间协议)客户端,该客户端将您的时钟与远程服务器同步。


1
$ timedatectl在Ubuntu 14.04上也可以正常工作。
门把手2015年

8

尽管此处的所有答案都是正确的,但您仍需要date手动使用命令查看时间,并且输出将与命令的正常输出混合。这通常可以,但有时不可行。

您可以将date命令添加到提示符下,每次shell准备使用该命令时都会显示一个(固定)时钟,或者您可以使用带有状态行的终端多路复用器之一。我最喜欢的一个(尽管我承认是最早的一个)是GNU屏幕。

在控制台或终端中,通过ssh,如果您使用screen您可以通过无数种不同的方式(我以前认为screen只有文本终端时无法避免的工作方式)说出---通常在默认配置下-在状态行中有一个时钟:

终端屏幕

(屏幕快照在虚拟终端上,但在虚拟控制台上相同)。


1
Byobu(基于屏幕)也可以做到这一点。仅供参考
谢尔盖Kolodyazhnyy


1

没有提及python,因此在这里将其丢弃:

$ python -c 'import time;print(time.asctime(time.localtime()))'                                                                       
Tue Nov 29 20:25:27 2016

它的工作方式非常简单:

  • 我们导入time模块
  • localtime()函数为struct数据类型提供所需的所有信息,例如一天中的时间,天,年等。
  • asctime() 将所有信息转换为字符串,然后将其打印出格式正确的文件

在python 2和3中都可以使用。


0

如果您正在寻找像YYYYMMDDHHMMSS之类的东西,请使用20160804020100 ,请使用以下方法:

date +%Y%m%d%H%M%S

它可以满足大多数目的,例如文件备份或日志过滤。


2
欢迎来到AskUbuntu。虽然此答案确实试图解决已发布的问题,但是答案中已经有多个其他用户提到了该解决方案。我个人认为这个答案没有用。请改善您的帖子
Sergiy Kolodyazhnyy 2016年

0

如果不确定系统时钟的准确性,或者要使用外部时间源,则可以通过Internet获取时间。为了获得最佳准确性,您可以使用sntp(默认安装在MacOS上,并且是ntp发行版的一部分)获取日期:

sntp pool.ntp.org 

如果您只能访问Internet,则可以使用HTP通过HTTP获得它,HTP在许多系统上都可以使用,因为HTPhtpdate通常只能精确到秒,或者您可以使用TLS(从TLS中提取时间戳)访问它。交换)tlsdate,可以提供更好的准确性:

tlsdate -nV ntp.org
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.