하루가 시작되는 날짜와 시간에 대한 예약어가 있나요?

하루가 시작되는 날짜와 시간에 대한 예약어가 있나요?

man date예약어는 표시되지 않지만 "지금" 또는 "오늘" 등이 있습니다.

하루의 시작(00:00:00)을 명확하게 출력할 수 있는 방법이 있는지 궁금합니다.

date -u -d "$(date +'%F')"어떤 경우에도 충분합니까? 조금 어리석은 것 같습니다.

답변1

date -d 00:00또는 date -d 00:00:00GNU, ast-open, Toysbox 및 busybox를 사용하세요 date.

date -d 0GNU에서도 작동합니다 date.

$ date -d 00:00
Tue  4 Oct 00:00:00 BST 2022

BSD 사용 date:

$ date -jf %H%M%S 000000
Mon Oct  4 00:00:00 BST 2022

-j, -f-d표준 옵션이 아닙니다 date.

POSIXdate시스템 시계 설정(XSI 옵션 아래) 외에는 지금 이외의 입력 날짜를 지정할 수 있는 규정이 없습니다.

다음을 수행할 수 있습니다.

$ date '+%a %e 00:00:00 %Z %Y'
Tue  4 00:00:00 BST 2022

BST하지만 시계가 동절기로 바뀌는 날 구간을 운행하게 되면 구간이 틀리게 될 수도 있습니다.

ksh93zsh입력 날짜 구문 분석을 기본적으로 지원합니다 .

  • 크쉬 93

    $ printf '%(%c [%s epoch time])T\n' 00:00
    Tue Oct  4 00:00:00 2022 [1664838000 epoch time]
    

    ( ksh93 에서 bash복사했지만 %(format)Tepoch 초 이외의 입력 날짜는 지정할 수 없습니다.)

    dateksh93은 ast-open 내장 기능을 사용하여 구축 할 수도 있습니다 .

  • 다루기 힘든

    $ zmodload zsh/datetime
    $ strftime -s today %F
    $ strftime -rs start %F $today
    $ strftime '%c [%s epoch time]' $start
    Tue 04 Oct 2022 00:00:00 BST [1664838000 epoch time]
    

    또는 프롬프트 확장을 사용하여 오늘 날짜를 가져옵니다( %여기에 매개변수 확장 플래그 전달).

    $ zmodload zsh/datetime
    $ strftime -rs start %F ${(%):-%D{%F}}
    $ strftime '%c [%s epoch time]' $start
    Tue 04 Oct 2022 00:00:00 BST [1664838000 epoch time]
    

다음 사항에 유의하세요.

date -u -d "$(date +'%F')"

오늘 날짜를 수락하세요.당신의시간대는 YYYY-MM-DD 형식이지만 date00:00:00에 시간을 묻는 메시지가 표시됩니다.UTC해당 날짜에는 귀하의 시간대가 현재 UTC와 일치하지 않는 한당신의하늘.

영국 본토는 여전히 일광 절약 시간제(UTC보다 1시간 빠릅니다)를 시행하고 있습니다.

$ date -u -d "$(date +'%F')" +%s
1664841600
$ date -d 00:00 +%s
1664838000

관련 정보