AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1127834
Accepted
ICE
ICE
Asked: 2019-03-23 05:20:14 +0800 CST2019-03-23 05:20:14 +0800 CST 2019-03-23 05:20:14 +0800 CST

date 命令的无效日期错误

  • 772

我想用这个命令获取日期信息:

date --date=2019-03-22

或者

date --date=2019/03/22

但它显示了这个错误:

date: invalid date ‘2019-03-22’

或者

 date: invalid date ‘2019/03/22’

如您所见,它与破折号无关。斜线也会发生同样的事情。

当我使用另一个日期时

date --date=2019-03-21

它正确显示了信息。

它不应该与坏的破折号字符有关。因为我刚刚删除了最后一个2并将其替换1为输出正常。

出了什么问题?

一些命令的结果以获取更多信息:

$ date --version
date (GNU coreutils) 8.28
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie.
$ type -a date
date is /bin/date
$ uname -m
x86_64
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:   bionic
$ which date
/bin/date
$ apt-cache policy coreutils
coreutils:
  Installed: 8.28-1ubuntu1
  Candidate: 8.28-1ubuntu1
  Version table:
 *** 8.28-1ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status
$ date
Fri Mar 22 06:54:59 PDT 2019
date --date=2019-03-22 2>&1 | od -c
0000000   d   a   t   e   :       i   n   v   a   l   i   d       d   a
0000020   t   e     342 200 230   2   0   1   9   -   0   3   -   2   2
0000040 342 200 231  \n
0000044

在这个日期不同时区发生了一些奇怪的事情:2019-03-22. 我随机将时区更改为不同的区域。有些有错误,有些没有!当我选择这些时,我对该特定日期有疑问:

  • 洛杉矶(美国)
  • 上海,中国)
  • 西班牙马德里)
command-line date
  • 2 2 个回答
  • 14295 Views

2 个回答

  • Voted
  1. Best Answer
    steeldriver
    2019-03-23T11:00:10+08:002019-03-23T11:00:10+08:00

    我几乎可以肯定这是由于在给定时区转换为夏令时:实际上这意味着一个小时“消失”(因此变成“ invalid”)。

    在我自己的时区,DST 于 3 月 10 日星期日凌晨 2 点开始,因此该小时无效:

    $ cat /etc/timezone
    America/Toronto
    $ date --date="2019-03-10 02:00:00"
    date: invalid date ‘2019-03-10 02:00:00’
    

    而之前和之后的时间是有效的:

    $ date --date="2019-03-10 01:59:59"
    Sun Mar 10 01:59:59 EST 2019
    
    $ date --date="2019-03-10 03:00:00"
    Sun Mar 10 03:00:00 EDT 2019
    

    在更改发生在午夜的时区中,裸日期似乎无效,因为 GNUdate假定时间为午夜:

    $ TZ=Asia/Tehran date --date='2019-03-22'
    date: invalid date ‘2019-03-22’
    

    但一小时后有效:

    $ TZ=Asia/Tehran date --date='2019-03-22 01:00:00'
    Fri Mar 22 01:00:00 +0430 2019
    

    另请参见无效日期 Linux

    • 7
  2. glenn jackman
    2019-03-23T06:59:14+08:002019-03-23T06:59:14+08:00
    $ date_ascii="2019-03-22"
    $ printf "%s" "$date_ascii" | od -c
    0000000   2   0   1   9   -   0   3   -   2   2
    0000012
    $ TZ=Asia/Shanghai date -d "$date_ascii"
    Fri Mar 22 00:00:00 America 2019
    

    和

    $ date_unicode="2019‑03‑22"
    $ printf "%s" "$date_unicode" | od -c
    0000000   2   0   1   9 342 200 221   0   3 342 200 221   2   2
    0000016
    $ TZ=Asia/Shanghai date -d "$date_unicode"
    date: invalid date ‘2019‑03‑22’
    
    • 4

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve