【发布时间】:2015-06-01 17:19:14
【问题描述】:
我想接受 dd-mm-yyyy 格式的日期作为用户输入(通过读取),然后将其转换为 shell 脚本中的日期对象。我怎样才能做到这一点。
我在yyyy-mm-dd 上取得了成功,但不知何故,它不适用于我的用例。
这是我的脚本:-
#!/bin/bash
read -p "Enter a date (dd-mm-yyyy): " user_date
if date=$(date -d "$user_date" +'+%d-%m-%Y'); then
# user date was ok
echo $date
这是我的输入:-
./2.sh
Enter a date (dd-mm-yyyy): 11-1-2011
错误:
date: invalid date `11-1-2011'
谢谢
【问题讨论】:
-
为什么会出错?
-
这是
bash脚本,而不是python -
@ZdaR。我用错误消息更新了我的问题
-
@sirfz 是的,先生。我的问题主题中已经提到了这一点。抱歉在python下错误地标记它
-
AFAICS,您无法指定输入格式的外观。我有一个程序
strptime,它基本上是函数strptime()解析日期字符串的封面。例如:strptime -T '%d-%m-%Y' 11-1-2011产生1294732800 = 11-1-2011,然后使用date,我可以得到:date -d @1294732800产生Tue Jan 11 00:00:00 PST 2011,这是正确的时区(美国/太平洋,又名美国/洛杉矶)。
标签: linux bash shell unix unix-timestamp