Question

Existe-t-il un moyen direct d’analyser une date iCalendar dans .net à l’aide de c #? Une date iCalendar ressemble à ceci:

2009-08-11T10:00+05:0000

J'ai besoin de l'analyser pour l'afficher dans un format convivial ... merci

Était-ce utile?

La solution

string strDate = "2009-08-11T10:00+05:0000";
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.FullDateTimePattern = "yyyy-MM-ddTHH:mmzzz";

DateTime dt = DateTime.Parse(c.Substring(0, c.Length-2), dtfi);

zzz est pour le fuseau horaire, mais n'est reconnu que lorsqu'il est exprimé ainsi: + xx: xx. J'ai testé avec votre exemple, en supprimant les 2 derniers 0 puis en analysant avec un DateTimeFormatInfo personnalisé.

Autres conseils

Vous pouvez utiliser DateTime.Parse () pour tout analyser avant le +. Je ne connais pas la spécification de format iCalendar, mais je suppose qu'après le +, il faut ajouter les heures / minutes à la date précédant le +. Vous pouvez donc utiliser AddHours () et AddMinutes () pour ajouter les bits requis à la DateTime renvoyée par DateTime.Parse () .

Cela nécessite un peu d’analyse de chaîne, mais avec un peu de regex, ça devrait aller.

Comme il ne s'agit pas d'une chaîne de format standard, mais que vous connaissez le format exact, vous pouvez utiliser DateTime.ParseExact et spécifier une chaîne de format personnalisé , comme ceci:

DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);

Le spécificateur 'zzz' représente les heures et les minutes décalées par rapport à l'heure UTC, et les deux zéros de conclusion ne sont que des littéraux correspondant au format avec lequel vous traitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top