当前位置: 首页 > 编程笔记 >

Linux中date命令转换日期提示date: illegal time format问题解决

宿鹏程
2023-03-14
本文向大家介绍Linux中date命令转换日期提示date: illegal time format问题解决,包括了Linux中date命令转换日期提示date: illegal time format问题解决的使用技巧和注意事项,需要的朋友参考一下

前言

很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

语法

date(选项)(参数)

但最近在使用中遇到了一个问题,下面来一起看看详细的介绍吧。

问题:运行date命令抛错

date -j -f "%a %b %d %T %Z %Y" "Sat Sep 29 11:33:00 CST 2018" "+%s”

报错:

Failed conversion of ``Sat Sep 29 11:33:00 CST 2018'' using format ``%a %b %d %T %Z %Y''
date: illegal time format
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
  [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

命令说明:

1.-f要转换的日期字符串的格式,对应后面的字符串的格式

  • %a 星期
  • %b 月份
  • %T 时:分:秒
  • %Z 时区
  • %Y 年

2.+%s 要转换后的日期,转换成秒

解决方法:

通过locale查看LANG是中文还是英文,如果日期月份用的英文,切换到英文。反之切换到中文

切换到英文:export LANG="en_US.UTF-8"

切换到中文:export LANG="zh_CN.UTF-8"

原因:

系统是分中英文的,-f对日期字符串解析时,月份和星期必须是对应系统的中文或英文才可以

举例:1.执行命令date -j -f "%a %b %d %T %Z %Y" "Sat Sep 29 11:33:00 CST 2018""+%s"

2.

查看当前系统的语言

3.

日期字符串为英文,将LANG改为英文

export LANG="en_US.UTF-8”

4.

更改完语言后,再执行转换日期的命令成功

 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。

 类似资料:
  • 问题内容: package main 这是文档中用于执行系统命令的代码示例。http://golang.org/pkg/os/exec/#example_Cmd_Output即使在文档站点上,示例执行框也不运行,并且具有相同的错误: 2009/11/10 23:00:00 exec:“ date” :在$ PATH中找不到可执行文件 在Windows上,我得到:exec:“ date”:在%PAT

  • 本文向大家介绍Linux中的tcpdump命令示例详解,包括了Linux中的tcpdump命令示例详解的使用技巧和注意事项,需要的朋友参考一下 前言 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机

  • 问题内容: 如果给定其他配置文件,则rebar不会自动重建文件。因此,我尝试在Makefile级别上执行此操作: 希望的意图很明显:当我使用需要特定配置文件的目标时,请检查上次是否使用了相同的文件;运行并记录我们现在使用的配置。 但这不起作用,并且文件会不断重新编译: 尽管config.tmp包含“ normal”: 我想念什么? 问题答案: 在定义变量时,您缺少用于实际调用外部程序的部分。

  • 怎么颜色是这样的,一开始我都以为没字,可以改吗?

  • 本文向大家介绍解决Linux常用命令“ll”失效或命令未找到的问题,包括了解决Linux常用命令“ll”失效或命令未找到的问题的使用技巧和注意事项,需要的朋友参考一下 问题: 常用命令“ll”失效或命令未找到 原因: "ll"命令不是linux的基本命令, 它是"ls -l"的别名, 部分版本并不直接支持“ll”命令输出。 运行“vi ~/.bashrc” 查看该文件里是否有“alias ll='

  • 本文向大家介绍Linux date命令知识点总结,包括了Linux date命令知识点总结的使用技巧和注意事项,需要的朋友参考一下 用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 以给定的格式显示当前时间,或是设置系统日期。 -d,--date=字符串 显示指定字符串所描述的时间,而非当前时间