유닉스의 모든 날짜 형식 변환

유닉스의 모든 날짜 형식 변환

사용자가 입력한 날짜를 로 변환하는 방법은 무엇입니까 yyyy/mm/dd?

20120121예를 들어, 사용자는 , 2012-01-21등 의 형식 중 하나로 날짜를 입력할 수 있습니다 01/21/2012.01/21/2012

하지만 사용자가 입력한 날짜를 yyyy/mm/dd(2012/01/2012)로 변환해야 합니다. 어떻게?

이것은 내가 사용하고 있는 스크립트이지만 작동하지 않습니다.

echo "Please enter the date: "
read X
a=$X+"%y/%m/%d"
echo $a

답변1

다음은 몇 가지 방법이지만 충돌에 주의하세요.

[ 0:26:00 ] afsin@s15426859:~ % date --date='12/12/12'
Mi 12. Dez 00:00:00 CET 2012
[ 0:26:14 ] afsin@s15426859:~ % date --date='12/12/2012'
Mi 12. Dez 00:00:00 CET 2012
[ 0:26:24 ] afsin@s15426859:~ % date --date='2012/12/11'
Di 11. Dez 00:00:00 CET 2012
[ 0:26:37 ] afsin@s15426859:~ % date --date='2012/11/12'
Mo 12. Nov 00:00:00 CET 2012
[ 0:26:47 ] afsin@s15426859:~ % date --date='2012/11/30'
Fr 30. Nov 00:00:00 CET 2012
[ 0:27:00 ] afsin@s15426859:~ % date --date='2012-11-30'
Fr 30. Nov 00:00:00 CET 2012
[ 0:27:17 ] afsin@s15426859:~ % date --date='2012-11-12'
Mo 12. Nov 00:00:00 CET 2012
[ 0:27:24 ] afsin@s15426859:~ % date --date='2012-12-11'
Di 11. Dez 00:00:00 CET 2012

이제 스크립트에서 다음을 사용하십시오.

date --date=$X '+%y/%m/d'

or

a=`date --date=$X '+%y/%m/d'`
echo $a

;-)

하지만 11-11-12 2011-11-12 또는 11.11.2012와 같은 충돌에 주의해야 합니까? 사용자가 무엇을 의미하는지 파악하는 것은 복잡합니다 ;-))

관련 정보