Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字符串唯一日期输出转换为c中的日期时间类型#_C#_Datetime - Fatal编程技术网

C# 将字符串唯一日期输出转换为c中的日期时间类型#

C# 将字符串唯一日期输出转换为c中的日期时间类型#,c#,datetime,C#,Datetime,我正在从api中提取数据,并获得此值“Fri Aug 16 21:06:52+0000 2013”我想知道如何将此字符串值更改为键入日期时间将字符串解析为日期时间: 对于成功/失败,DateTime.TryParse()返回true或false。 Parse()在失败时引发异常 您可以使用 有几种方法 如果解析失败,则不会引发异常 还有 与TryParse不同,如果解析失败,将引发异常 还有, 如果转换失败,这也会引发错误。您应该阅读 这会解决你的问题,尽管如此 DateTime resu

我正在从api中提取数据,并获得此值
“Fri Aug 16 21:06:52+0000 2013”
我想知道如何将此字符串值更改为键入日期时间

将字符串解析为日期时间:

对于成功/失败,DateTime.TryParse()返回true或false。 Parse()在失败时引发异常

您可以使用


有几种方法

如果解析失败,则不会引发异常

还有

TryParse
不同,如果解析失败,将引发异常

还有,

如果转换失败,这也会引发错误。

您应该阅读

这会解决你的问题,尽管如此

 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
}
使用或(如果输入可能无效):


,尤其是更新问题后编辑的

如果要将其转换为本地时区,请使用:

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);

这叫做解析,试着用谷歌搜索一下
DateTime.Parse
TryParse
TryParseExact
可能是有用的。关于它的帖子很多。参见
“ffff”
表示小数秒,但在他的字符串中给出了时区。所以从技术上讲,“ffff”是错误的(尽管它是有效的)。“ffff”表示小数秒,但在他的字符串中给出了时区。所以从技术上讲,“ffff”是错误的(尽管它是有效的)(摘自Jeppe的评论)。
//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
}
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());
}
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);
var dateTime = DateTime.ParseExact("Fri Aug 16 21:06:52 +0000 2013",
  "ddd MMM dd HH:mm:ss +0000 yyyy",
  CultureInfo.InvariantCulture);