DateTime parsing

 
In BizTalk stond in helper class de volgende code:
 
/// <summary>
/// Returns a date that can be used by the SQL Adapter. The SQL adapter doesn’t use the standard XSD
/// datetime format but needs additional formatting.
/// </summary>
/// <param name="dateTimeIn">a string representing a date time.</param>
/// <returns>A correct formatted time string</returns>
public static string XMLDateToSQLDate(string dateTimeIn)
{
try
{
// Make sure a datetime has the valid format for the SQL adapter
DateTime parsedDate = DateTime.Parse(dateTimeIn, System.Globalization.CultureInfo.InvariantCulture);
return parsedDate.ToString("yyyy-MM-ddTHH:mm:ss.fff");
}
catch (Exception ex)
{
Tracing.TraceManager.SmartTrace.TraceError(ex);
return System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff");
}
}
 
Wat hier gedaan wordt, is het parsen van een string naar een datetime field. Vervolgens wordt dit datetime veld weer als string doorgegeven. Bij de C# links staat ook een verwijzing naar een site die aangeeft hoe je een datetime veld met de gewenste formattering kunt weergeven.
 
Commentaar dat ik op Internet vond:
Don’t use DateTime.Parse if you know exactly what format you’re expecting.
Use DateTime.ParseExact instead and pass in the format string (and an
invariant culture). Skip TimeSpan.Parse since you can’t control the format
and instead combine the two strings into one before parsing. Try this:

string datetime = datefield + " " + timefield;
string format = @"MM/dd/yyyy HH:mm:ss";
IFormatProvider provider =
System.Globalization.DateTimeFormatInfo.InvariantInfo;
DateTime dt = DateTime.ParseExact(datetime, format, provider);

This assumes that single digit months and days have a leading zero. If
that’s not the case try the following format string instead:
string format = @"M/d/yyyy HH:mm:ss";

Leave a Reply

Your email address will not be published. Required fields are marked *