Эта строка генерируется приложением, которое я пытаюсь отлаживать. DateTime.Parse работает, но DateTime.ParseExact нет. Сохраняет исключение для плохого формата.Что случилось с этой строкой DateTime?
// test
string dateTimeFormatted = "2014-11-10T14:49:24-06:00";
try
{
//yyyy-MM-ddTHH:mm:sszzz 2014-11-10T14:49:24-06:00
DateTime myDate = DateTime.ParseExact(dateTimeFormatted,
"yyyy-MM-ddTHH:mm:sszzz", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None);
return myDate;
}
catch (Exception)
{
try
{
// This works
DateTime myDate2 = DateTime.Parse(dateTimeFormatted);
return myDate2;
}
catch (Exception)
{
throw;
}
}
Edit:
Это последний метод, который я написал, что, кажется, работает безупречно. Поскольку метод вызывается вскоре после того, как приложение генерирует эту метку времени, оно будет просто использовать Datetime.Now, если оба DateTime.ParseExact и DateTime.Parse терпят неудачу.
public DateTime GetDateTimeFromFormattedString(string dateTimeFormatted)
{
try
{
//test data 2014-11-10T14:49:24-06:00
DateTime myDate;
bool bIsParsed = DateTime.TryParseExact(dateTimeFormatted.Trim(),
"yyyy'-'MM'-'dd'T'HH':'mm':'sszzz", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out myDate);
if (bIsParsed)
return myDate;
else
bIsParsed = DateTime.TryParse(dateTimeFormatted.Trim(), out myDate);
if (bIsParsed)
return myDate;
else
return DateTime.Now;
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
return DateTime.Now;
}
}
Другой редактировать:
Это тоже работает
DateTimeOffset dto;
bool bIsParsed = DateTimeOffset.TryParseExact(dateTimeFormatted.Trim(), "yyyy-MM-ddTHH:mm:sszzz",
System.Globalization.CultureInfo.InvariantCulture,
DateTimeStyles.AdjustToUniversal, out dto);
if (bIsParsed)
return dto.DateTime;
Примечание стороны: используйте «TryParseExact» и «TryParse» вместо исключения исключений. –
[Код, который вы предоставили мне для работы] (http://ideone.com/ctM8IJ). – CodeCaster
Да, это работает и здесь. Видя, как вы из США, я сомневаюсь, что это какая-то экзотическая культура, поэтому я не могу не предполагать, что это что-то не имеет к этому отношения. –