我从api中提取数据,我得到了这个值"Fri Aug 16 21:06:52 +0000 2013"
我想知道如何将此字符串值更改为键入日期时间
答案 0 :(得分:1)
您可以使用DateTime.ParseExact
DateTime.ParseExact("Aug 16 21:06:52 +0000 2013", "MMM dd HH:mm:ss +ffff yyyy",
System.Globalization.CultureInfo.InvariantCulture);
答案 1 :(得分:1)
您应该阅读DateTime custom formats。
这应该解决你的问题
DateTime result = DateTime.ParseExact("Aug 16 21:06:52 +0000 2013", "MMM dd HH:mm:ss zzz yyyy", CultureInfo.InvariantCulture);
或者做得更恰当,避免例外。这样做
//zzz is Hours and minutes offset from UTC
string[] formats = { "MMM dd HH:mm:ss zzz yyyy" };
DateTime result;
string date = "Aug 16 21:06:52 +0000 2013";
if (DateTime.TryParseExact(date, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
{
// i prefer this method though
}
答案 2 :(得分:1)
使用DateTime.ParseExact
或(如果输入可能无效)DateTime.TryParseExact
:
string input = "Aug 16 21:06:52 +0000 2013";
DateTime output;
if (DateTime.TryParseExact(input, "MMM dd HH:mm:ss zzzz yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out output))
{
// date was parsable, here is it:
Console.WriteLine(output.ToLongDateString());
}
Custom Date and Time Format Strings,尤其是"zzz" Custom Format Specifier
答案 3 :(得分:0)
将字符串解析为datetime:
http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx DateTime.TryParse()返回true或false表示成功/失败。 http://msdn.microsoft.com/en-us/library/1k1skd40.aspx DateTime.Parse()在失败时抛出异常。
答案 4 :(得分:0)
有几种方法......
DateTime dt;
if (DateTime.TryParse("Aug 16 21:06:52 +0000 2013", out dt))
{
//parsing was successfull
}
如果解析失败,这不会抛出异常。
DateTime dt = DateTime.Parse("Aug 16 21:06:52 +0000 2013");
与TryParse
不同,如果解析失败,这将抛出异常。
DateTime dt = Convert.ToDateTime("Aug 16 21:06:52 +0000 2013", culture);
如果转换失败,这也会引发错误。
答案 5 :(得分:0)
更新问题后编辑。
如果您希望将其转换为当地时区,请使用:
var dateTime = DateTime.ParseExact("Fri Aug 16 21:06:52 +0000 2013",
"ddd MMM dd HH:mm:ss zzz yyyy",
CultureInfo.InvariantCulture);
否则,请使用:
var dateTime = DateTime.ParseExact("Fri Aug 16 21:06:52 +0000 2013",
"ddd MMM dd HH:mm:ss zzz yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.AdjustToUniversal);
如果+0000
始终与输入中的var dateTime = DateTime.ParseExact("Fri Aug 16 21:06:52 +0000 2013",
"ddd MMM dd HH:mm:ss +0000 yyyy",
CultureInfo.InvariantCulture);
完全相同,并且您想完全忽略它,请使用:
{{1}}