2010-11-23 4 views
1

Als Thema sagt, habe ich eine Zeichenfolge wieWie Convert.ToDateTime oder parse Datum in C#, aber nur erhalten TT/MM/JJJJ in C# 2.0?

string CreatedDate = "12/09/2010" 

und ich möchte es zu einer Web-Methode zu übergeben, die es als Datum- und akzeptiert nur

customer.dateCreated = Convert.ToDateTime(CreatedDate); 

es natürlich hh hinzufügen: mm: ss nach das Datum, das der Webservice nicht akzeptiert, also wie kann ich das Datum im Kurzformat behalten, wenn ich es in ein Datum umwandle?

Vielen Dank im Voraus

+0

Wenn der Webdienst tatsächlich einen Parameter vom Typ 'DateTime' akzeptiert, wie kann er * hh: mm: ss * nach dem Datum nicht akzeptieren? –

Antwort

1

Sie Unter der Annahme haben:

void WebMethod(DateTime date); 

und

string dateString = "12/09/2010"; 

dann als nächstes tun:

DateTime date; 
if (DateTime.TryParseExact(dateString, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date)) 
{ 
    WebMethod(date); 
} 
else 
{ 
    // raise an error - specified date is not in specified format 
} 

Hinweis:

date.Hour // 0 
date.Minute // 0 
date.Seconds // 0 

Andernfalls, wenn Sie DateTime Objekt und WebMethod(string date) wo Datum haben sollte, dann in bestimmtem Format sein:

DateTime date = ..; 
WebMethod(date.ToString("dd/MM/yyyy")); 
+0

@Peter: Froh, dass es geholfen hat! :) – abatishchev

1

DateTime hat eine .Date Eigenschaft, die die Zeitinformation Streifen.

+0

Wie benutze ich das? – Peter

+1

Wie ich es verstehe, ist das nicht das Problem - nachdem Sie eine Zeichenfolge analysiert haben, die nur ein Datum enthält, wird sowieso alles in den Zeitfeldern 0 sein. Das Problem liegt vor, wenn der Web-Service-Client-Code das Datum/die Uhrzeit in der Anfrage formatiert. –

+0

"das die Zeitinformation streift" - ja und nein: Sie erhalten eine 'DateTime' mit einem Zeitanteil von Null zurück, aber * ist * immer noch ein' DateTime' Wert. Wenn Sie ".Date" für das Ergebnis des Aufrufs "Convert.ToDateTime" in der Frage aufrufen, erhalten Sie genau den gleichen Wert wie die Eingabe. – AakashM

2

Ein DateTime Wert weiß nichts seine Formatierung (und in der Tat es sollte nicht). Es scheint, als wäre Ihr Web-Service defekt, wenn er nicht die standardmäßige Formatierung von Datum und Uhrzeit akzeptiert. Was ist die Implementierung des Web Service? Ist "Kunde" eine automatisch generierte Proxy-Klasse?

1

Ist das Datum als nur „12.09.2010“ die WebService akzeptieren? In der Regel sollte ein Webservice den Empfehlungen hier folgen XML Schema Part 2: Datatypes Second Edition

Welcher ist UTC-Format. Verwendung:

DateTime.ParseExact(value, "ddd MMM dd HH:mm:ss zz00 yyyy", null); 

löst das Problem die meisten Male.