Parsing dates in Mavericks

3

Sono sicuro che questo era valido:

$ date -d"2013-10-12T09:23:28+0100" +%h
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
        [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

Ma non sembra essere in Mavericks. In effetti, anche l'esempio per l'analisi delle date in man date non sembra funzionare:

$ date -j -f "%a %b %d %T %Z %Y" "'date'" "+%s"
Failed conversion of ''Thu 31 Oct 2013 21:05:29 GMT'' using format ''%a %b %d %T %Z %Y''
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
        [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

Qualche idea su una soluzione alternativa?

    
posta rich 31.10.2013 - 22:11
fonte

2 risposte

4

Ecco due comandi di data che funzionano su Mavericks per convertire / estrarre il tempo dalle stringhe di data:

mac:~ me$ date -j -f "%Y-%m-%d %T" "2013-10-12 09:23:28" +%s
1381584208
mac:~ me$ date -j -f "%Y/%m/%d %T" "2013/10/22 10:45:00" +%h
Oct

Non è del tutto chiaro cosa cerchi, ma spero che questi esempi funzionanti colmino il divario per le tue esigenze.

    
risposta data 31.10.2013 - 22:32
fonte
1

-d ha impostato il valore del kernel per l'ora legale nella data di OS X almeno dal 10.6. Il primo comando ha funzionato per me con la data di GNU (dove -d specifica una stringa di data):

$ gdate -d"2013-10-12T09:23:28+0100" +%h
Oct

Il secondo comando ha funzionato con la data che arriva con 10.9 quando ho usato la locale en_US ma non quando ho usato la locale en_GB:

$ date -j -f "%a %b %d %T %Z %Y" "'date'" "+%s"
1383305706
$ date -j -f "%a %b %d %T %Z %Y" "'LC_TIME=en_GB date'" "+%s"
Failed conversion of ''Fri  1 Nov 2013 14:09:17 EET'' using format ''%a %b %d %T %Z %Y''
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

Nella data di OS X, -j disabilita il tentativo di impostare la data e -f specifica un formato per l'analisi di una data.

    
risposta data 01.11.2013 - 13:12
fonte

Leggi altre domande sui tag