2011-04-21 11 views
0

J'insérant des données dans une liste SharePoint (via des services web) et sur ma machine locale, je mets un champ de date comme celui-ci (codé en dur dans cet exemple)DateTime analysé différemment dans différents environnements?

<Field Name='TimeOnScene'>" + DateTime.Parse("13/12/2011 1:00").ToString("yyyy-MM-ddTHH:mm:ssZ") + "</Field> 

et il fonctionne très bien sur ma machine locale , mais si je le publie sur notre hébergeur et exécute exactement le même code, je reçois

{"Message":"String was not recognized as a valid DateTime.","StackTrace":" 
// 
// 
System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)\r\n at System.DateTime.Parse(String s)\r\n "ExceptionType":"System.FormatException"} 

Comment est-ce possible?

Merci d'avance.

Edit:

nous avons également passé d'hôte à un autre il y a deux semaines et n'a jamais eu ce problème auparavant.

+0

avez-vous vérifié quelle chaîne vous obtenez pour DateTime sur l'hébergeur ... –

+0

désolé comment puis-je faire cela? – Nick

+0

Je suppose que la chaîne est dans une culture différente de celle que vous attendez. –

Répondre

2

Utilisez DateTime.ParseExact au lieu de Parse, la conversion sera comme le code suivant.

CurDate = DateTime.ParseExact(YourDateString, "dd/MM/yyyy hh:mm", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None) 
+0

@Nick, ce code n'est pas satisfaisant par vous? –

0

L'hôte peut avoir un ensemble local différent sur cet ordinateur. dans la documentation The string s is parsed using formatting information in the current DateTimeFormatInfo object, which is supplied implicitly by the current thread culture.

Questions connexes