Dans Delphi est-il une fonction pour convertir XML date et le temps de TDateTime

XML la date et l'heure dans le format

'-'? aaaa '-' mm '-' jj 'T' hh ':' mm ':' ss ('.' s+)? (zzzzzz)?

ont été

•'-'? aaaa est l'un des quatre ou plus de chiffres éventuellement négatif-signé chiffre qui représente l'année; si plus de quatre chiffres, les zéros non significatifs sont interdites, et '0000' est interdite

•les autres '-'s sont des séparateurs entre les parties de la date partie;

•le premier mm est deux chiffres du chiffre qui représente le mois;

•dd est à deux chiffres du chiffre qui représente le jour;

•'T' est un séparateur indiquant que l'heure de la journée suivante;

•hh est à deux chiffres du chiffre qui représente l'heure; '24' est autorisée que si les minutes et les secondes sont représentées zéro, et la valeur de type dateTime ainsi représenté est le premier instant de la journée suivante (l'heure de la propriété d'un objet dateTime dans la ·valeur de l'espace· ne peut pas avoir une valeur supérieure à 23);

•':' est un séparateur entre les parties du temps de la journée à la partie;

•la deuxième mm est deux chiffres du chiffre qui représente la minute;

•ss est un deux-entier-chiffres chiffre qui représente l'ensemble des secondes;

•'.' s+ " (si présent) représente la fraction de secondes;

•zzzzzz (si présent) représente le fuseau horaire (comme décrit ci-dessous).

voici d'autres exemples

Exemple Simple
Heure 2009-08-31T19:30:00

Des exemples plus complexes

2002-10-10T12:00:00-05:00 (midi du 10 octobre 2002, Centrale de l'Heure d'été ainsi que l'Heure normale de l'est des états-UNIS) est 2002-10-10T17:00:00Z, cinq heures plus tard 2002-10-10T12:00:00Z.

voir www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html pour plus d'info

  • Si il ya une telle fonction, être très prudent avec elle. Il peut perdre de l'information, comme TDateTime peut ni tenir compte des dates avant TDateTime(0.0), ni a une notion de temps, de zones ou de l'heure d'été.
  • la partie de votre commentaire à propos de TDateTime = 0.0 est incorrect. Réglage d'une valeur TDateTime à -693593.00, par exemple, les résultats d'une date de 01/01/0001 correctement stockés. À l'aide de StrToDate('01/01/0001') également retourne correctement -693593.00
  • Désolé pour la mauvaise orientation du commentaire précédent de réponse à Mason. 🙁