web-dev-qa-db-fra.com

Comment convertir une date dans Excel au format ISO 8601

J'essaie d'enregistrer un format de date au format AAAA-MM-JJ, par exemple 2014-09-01 en tant que fichier CSV, mais le format revient au format M/D/YYYY lorsque je le fais.

J'ai essayé de convertir la date sous forme de chaîne dans Excel, mais chaque fois que j'ouvre le fichier CSV, il revient au format M/D/YYYY. J'ai besoin du format de date ISO 8601 pour être enregistré dans un fichier CSV. Comment puis-je m'y prendre?

23
Mike C

La fonction de base est:

=TEXT(A1,"yyyy-mm-ddThh:MM:ss")

Utilisez-le pour convertir vos colonnes de date Excel en colonnes de date ISO 8601 séparées. Ensuite, copiez les colonnes ISO 8601 sur les originaux (collage spécial: valeurs de collage uniquement) . Supprimez les colonnes ISO 8601 calculées qui contiennent maintenant des ordures, car Excel accepte les dates ISO 8601.

Vous avez maintenant un fichier CSV, TSV ou autre. Enregistrez simplement le format d'origine et ignorez les stupides sifflements d'Excel concernant le fait que ce n'est pas son format de fichier natif et comment vous allez "perdre" d'une manière ou d'une autre en enregistrant le fichier CSV sans essayer de penser aux heures de votre vie avec ce dialogue stupide.

33
Dirk Bester

En guise de mise en garde pour les utilisateurs non anglophones. Il m'a fallu un peu de temps pour comprendre que la chaîne de format est sensible aux paramètres régionaux/régionaux. Par exemple. avec mes paramètres de formatage en allemand:

=TEXT(C2;"jjjjMMtt")

(Bien que le système d'exploitation et Excel soient définis en anglais.)

7
Martin Faust

J'ai copié et collé la formule de @Dirk Bester ci-dessus,

=TEXT(A1,”yyyy-mm-ddThh:MM:ss”)

mais cela ne fonctionnerait pas, Excel 2010 se plaignant haut et bas - c'est-à-dire jusqu'à ce que je remplace les guillemets d'une sorte de "citation intelligente" par un ancien ASCII 0x22 guillemets:

=TEXT(A1,"yyyy-mm-ddThh:MM:ss")

Et maintenant, cela fonctionne comme un charme. FYI.

5
Tom Hundt

Vous pouvez configurer une cellule, par exemple: 

Faites un clic droit sur la cellule> Format de cellule> Catégorie> Personnalisé> Type> écrire ceci:

aaaa-mm-jjThh:mm:ss (french format here)
yyyy-mm-ddThh:MM:ss (english format)

Désolé pour mon anglais.

3
RockDaFox

Vous pouvez simplement passer directement à l’option nucléaire: Modifiez les paramètres "Région et langue" de votre ordinateur pour utiliser le format de date courte "aaaa-MM-jj".

2

Je pense que vous avez peut-être créé le bon format dans le fichier .csv.

Mais cet Excel force automatiquement cela dans une valeur de date du format que vous mentionnez lorsque vous ouvrez le fichier .csv. Une solution consiste peut-être à importer le fichier .csv plutôt que de l'ouvrir. À l'étape 3 de l'option Obtenir des données externes, à partir du texte, vérifiez que Texte est sélectionné pour le format de données de colonne, le cas échéant.

1
pnuts

FWIW, aucune de ces solutions ne fonctionnait pour moi dans un Excel avec des dates du 16ème siècle, par exemple 26-08-1558 pour le 26 août 1558. Pour convertir cela en une date ISO, j’ai utilisé: 

=RIGHT(D2|4)&"-"&MID(D2|4|2)&"-"&LEFT(D2|2)
0
RolfBly