date
문자열 입력을 '획기적 시간'(일식 1970 년 01 월 00 일 00:00:00 +00 : 00 이후의 초 수)으로 변환하려면 두 번 사용해야합니다.
rdate="9/14/16"
epoch_time=$(date -j -f '%m/%d/%y' "$rdate" +'%s')
date -j -vmon -r "$epoch_time"
date -j -vfri -r "$epoch_time" +'%w'
나에게 출력했다 : 한 번 사용자가 선택한 출력 형식에 획기적인 시간을 변환하는 금요일 요일 5입니다
Mon Sep 12 10:14:44 PDT 2016
5
참고 때문에 출력이 올바른지 . %w
을 지정할 때 -v
dow
은 약간의 문제가 있습니다. 출력은 5가 될 것입니다. 그러나 필요한 다른 형식의 문자도 사용할 수 있습니다.
시간 부분의 기본값은 현재 시간입니다. 당신은 자정에 등을 작동하도록 변환 형식 (-f
인수)로 변환 된 날짜와 %H:%M:%S
에 00:00:00
을 추가 할 수
는 한 명령 줄에 그것을 결합 할 수 있습니다
:
$ date -j -vmon -r $(date -j -f '%m/%d/%y %H:%M:%S' "$rdate 00:00:00" +'%s') +'%Y-%m-%d %H:%M:%S %w %s'
2016-09-12 00:00:00 1 1473663600
$
온 마지막 예 Mac OS X의 date
에 대한 man 페이지는 %s
형식 지정자를 언급합니다. 이것은 형식 지정자를 작동시키는 열쇠입니다. 자, date
을 두 번 사용합니다. 맨 페이지가 시놉시스를 제공
참고 : 사용법 메시지는 당신이 -f
을 사용할 수 없다는 표시되지 않습니다
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
:
date [-ju] [-r seconds] [-v [+|-]val[ymwdHMS]] ... [+output_fmt]
date [-jnu] [[[mm]dd]HH]MM[[cc]yy][.ss]
date [-jnu] -f input_fmt new_date [+output_fmt]
date [-d dst] [-t minutes_west]
'사용'메시지가 덜 유용 -r
또는 -v
인 반면, 매뉴얼은 분명하지 않지만 사용자는 할 수 없습니다.
테스트 됨 : Mac OS X 10.11.6 El Capitan
수 없습니다. 'date'에 의해 표준 출력에 쓰여지는 문자열 만있는 날짜 객체는 없습니다. – chepner
감사합니다. @chepner. 방금 내 요구 사항을 자세히 설명하는 게시물을 편집했습니다. –
bash보다 더 강력한 언어가 필요할 것입니다 (예 :'python'). 'awk' ('gawk')의 GNU 버전은 datetime 함수를 가지고 있습니다. 그러나 여러분이 필요로하는 일을하는 것이 까다로울 것이라고 생각합니다. – cdarke