我正在从 api 中提取数据并得到这个值"Fri Aug 16 21:06:52 +0000 2013"
我想知道如何将这个字符串值更改为键入日期时间
问问题
188 次
6 回答
1
您可以使用DateTime.ParseExact
DateTime.ParseExact("Aug 16 21:06:52 +0000 2013", "MMM dd HH:mm:ss +ffff yyyy",
System.Globalization.CultureInfo.InvariantCulture);
于 2013-08-19T10:28:38.327 回答
1
您应该阅读DateTime 自定义格式。
这应该可以解决您的问题
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
}
于 2013-08-19T10:31:21.543 回答
1
使用DateTime.ParseExact
or (如果输入可能无效)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());
}
于 2013-08-19T10:32:47.710 回答
0
将字符串解析为日期时间:
http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx DateTime.TryParse() 返回 true 或 false 表示成功/失败。 http://msdn.microsoft.com/en-us/library/1k1skd40.aspx DateTime.Parse() 在失败时抛出异常。
于 2013-08-19T10:28:32.113 回答
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);
于 2013-08-19T10:38:02.633 回答
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);
如果转换失败,这也会引发错误。
于 2013-08-19T10:31:16.243 回答