2010-05-10 5 views
10

Ho uno script che emette un file CSV. Come devo formattare le date o i campi data + ora in modo che Excel analizzi correttamente quel campo come una data?Come formattare un datetime in modo che Excel lo capisca?

PS: Mi piacerebbe mantenere intatte anche le informazioni sul fuso orario.

+0

CSV non è un formato molto ben definito e, in ambienti internazionali, la loro interpretazione dipende dalle impostazioni internazionali del pc (dmy vs mdy). Anche la virgola può essere sostituita da un punto e virgola. Evito quel "non formato" quando possibile. –

+0

Non ho mai visto "la virgola sostituita da un punto e virgola" in un file che dichiara di essere CSV. In effetti, non riesco a ricordare l'ultima volta che ho visto un file CSV che non seguiva RFC 4180 (). L'unica domanda è come rappresentare oggetti ricchi come datetimes. – Ken

risposta

-2

Vorrei utilizzare il formato "gg/mm/aaaa hh: nn: ss". Non ho mai avuto problemi con Excel in questo formato.

+0

E i fusi orari? – nickf

+0

Il fuso orario dovrebbe essere aggiunto come colonna separata. –

+2

È uguale al formato "gg/MM/aaaa hh: mm: ss"? Excel non legge questo formato correttamente dai file CSV. Legge le date solo nel formato americano (mm/gg/aaaa), indipendentemente dalle impostazioni internazionali. È un bug in Excel, per quanto posso vedere. – SDK

4

Il formato data di Excel non contiene alcuna informazione sui fusi orari. Esporterei il fuso orario come una colonna separata, forse come offset rispetto a GMT, come 5 o -2. Personalmente preferisco l'univoco formato data aaaa-mm-gg.

+0

+5, o -2 a cosa? – nickf

+0

+5 o -2 a Greenwich Mean Time (GMT), quindi ad esempio, il fuso orario orientale sarebbe da -5 a GMT, mentre Parigi sarebbe +1. – dendarii

+0

beh, questo è quello che intendo, come lo saprebbe qualcuno? – nickf