如何使用 curl 命令获取日期和时间?

man*_*nta 2 command-line curl

在我的 PC 中,RTC 不工作,所以我希望使用curl命令从服务器获取日期和时间,或者是否有可能在 PC 中没有 RTC 的情况下获取日期和时间。日期和时间所需的格式为DDMMYYYYHHMMSS.

bis*_*oco 8

首先,curl发出 http(s) 请求。假设您有一个网络服务器在机器上侦听,那么您有 2 个选择:

  1. 创建一个脚本 (php/asp/node),为您提供日期和时间作为对请求的响应。

  2. 从服务器响应头中获取时间。

    curl -v https://google.com/
    
    Run Code Online (Sandbox Code Playgroud)

    这会给你除其他外,像这样的一条线

    ...
    < Date: Wed, 02 Mar 2016 18:39:13 GMT
    ...
    
    Run Code Online (Sandbox Code Playgroud)

    有了这个结果,您就可以解析并转换为您想要的格式。

    dateFromServer=$(curl -v --silent https://google.com/ 2>&1 \
       | grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"
    
    Run Code Online (Sandbox Code Playgroud)

    您必须注意 GMT 与当地时间的差异,并根据您的需要进行调整。

2018
年 11 月 26 日更新:正如@SopalajodeArrierez 所指出的,当证书未更新或时间与正确值相差很远时,无法运行此程序,因此--insecurecurl 命令需要这些选项。

    dateFromServer=$(curl -v --insecure --silent https://google.com/ 2>&1 \
       | grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"
Run Code Online (Sandbox Code Playgroud)