有谁知道如何将以下字符串转换为C#中的DateTime
值?
"Thu Nov 15 2012 00:00:00 GMT+0300 (E. Africa Standard Time)"
答案 0 :(得分:6)
如果您只有以"GMT+0300 (E. Africa Standard Time)"
结尾的字符串,则可以尝试:
string dateString = "Thu Nov 15 2012 00:00:00 GMT+0300 (E. Africa Standard Time)";
DateTime date = DateTime.ParseExact(dateString, "ddd MMM dd yyyy HH:mm:ss 'GMT+0300 (E. Africa Standard Time)'", System.Globalization.CultureInfo.InvariantCulture);
说明符的含义如下:
您可以在名为Custom Date and Time Format Strings
的MSDN文章中找到有关不同格式说明符的更多信息此外,如果你想解析"GMT+0300 (E. Africa Standard Time)"
部分,我认为你应该实现一种自己解析它们的方法。我不认为有这样的说明。
答案 1 :(得分:1)
首先,你应该为你的非洲标准时间文化信息使用';
CultureInfo( "af-ZA", false );
但是你的字符串转换为DateTime
非常复杂。对我来说,完全转换为DateTime
似乎是不可能的。但我们可以在你的弦乐中进行一些康复。例如,如果你的字符串是这样的; "11/15/2012 00:00:00"
你可以像这样转换它;
using System;
using System.Globalization;
namespace Programs
{
public class Program
{
public static void Main(string[] args)
{
string str = "11/15/2012 00:00:00";
DateTime dt = DateTime.ParseExact(str, "MM/dd/yyyy hh:mm:ss", new CultureInfo("af-ZA"));
Console.WriteLine(dt.ToString());
}
}
}
答案 2 :(得分:0)
试试这个:
DateTime date = DateTime.Parse(yourDateTimeString);
答案 3 :(得分:0)
无法处理(E.非洲标准时间)。
假设UTC = GMT你也可以获得时区部分,只删除不是字符串的重要部分
string t = Regex.Replace("Thu Nov 15 2012 00:00:00 GMT+0300 (E. Africa Standard Time)", "([(].+?[)])", "");
t= t.Replace("GMT", "").Trim();
DateTime a = DateTime.ParseExact(t, "ddd MMM dd yyyy HH:mm:ss zzzz", System.Globalization.CultureInfo.InvariantCulture);