parsed date format hard to convert
-
01-06-2021 - |
Вопрос
I parse a date that is in string format and would like to convert it to a datetime format but cannot figure out how to do this. The date appears as such;
Wed April 18 08:00:04 +08:00 2012
and would like it in a simple form of
2012-04-18 08:00:00
Code:
Dim postDate As DateTime
Dim provider As CultureInfo = CultureInfo.InvariantCulture
contentDate = Regex.Replace(contentDate, "\+", "")
Dim format As String = "ddd MMMM dd HH:mm:ss zzz yyyy"
postDate = DateTime.ParseExact(contentDate, format, provider)
contentDate = postDate.ToString("yyyy-MM-dd hh:mm:ss tt")
any ideas appreciated
Решение
var format = "ddd MMMM dd H:mm:ss zzz yyyy";
var culture = System.Globalization.CultureInfo.InvariantCulture;
DateTime date = DateTime.ParseExact(dateString.Trim(), format, culture);
Will parse the date format you provided. Note that that the above format string assumes the date format you're parsing uses two digits for days that are less than 10, ie. April 01
.
date.ToString("yyyy-MM-dd hh:mm:ss tt");
Will produce the desired output date format.
For reference you should look at the MSDN documentation for DateTime.ParseExact() and Custom Date and Time Format Strings.
Другие советы
string dateString, format;
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;
dateString = "Wed April 18 08:00:04 +08:00 2012";
format = "ddd MMMM dd HH:mm:ss zzz yyyy";
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to your format {1}.", dateString,
result.ToString("yyyy-MM-dd HH:mm:ss"));
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
Не связан с StackOverflow