2012-06-20 2 views
5

ho date formato con l'opzione di riga di comando -f% Y-% m-% d o addirittura% d-% b-% axls2csv: sbagliato cellule data parsing

ma ogni data esce quattro anni e un giorno prima della data di ingresso I

ad esempio, la data di 01.06.2012 dopo l'analisi, senza opzione -f viene come 2016-06-02 giocando con -f dà lo stesso risultato

Qual è la ragione? Esistono soluzioni alternative, eccetto l'hardcode e il sottotesto indietro di questi 4 anni e 1 giorno?

Sto usando xls2csv (da V.B.Wagner, viene con l'imballaggio catdoc in debian) e il passaggio ad un altro parser può essere scelta molto costosa

+3

Quattro anni e un giorno suona esattamente come la differenza tra i calendari Windows 1900 e Mac 1904. Quale calendario è impostato per la cartella di lavoro originale? –

risposta

2

Strumenti xls2csv è un'applicazione Perl che utilizza Spreadsheet::ParseExcel biblioteca.

Sulla base di tale biblioteca documentation, uno dei problemi noti è:

  • Se Excel dispone campi della data in cui il formato specificato è uguale al sistema-default per le impostazioni internazionali a breve la data , Excel non memorizza il formato, ma il valore predefinito è un formato interno che dipende dal sistema. In questi casi, ParseExcel utilizza il formato data "aaaa-mm-gg".

Quindi probabilmente si manipola con il file Excel che non contiene la data di creazione a causa del problema sopra elencato.