可能重复:
字符串中的日期时间格式?
有谁知道我如何将以下字符串转换为DateTime
C# 中的值?
"Thu Nov 15 2012 00:00:00 GMT+0300 (E. Africa Standard Time)"
可能重复:
字符串中的日期时间格式?
有谁知道我如何将以下字符串转换为DateTime
C# 中的值?
"Thu Nov 15 2012 00:00:00 GMT+0300 (E. Africa Standard Time)"
如果您只有以 结尾的字符串"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)"
部分,我认为您应该实现一种自己解析它们的方法。我不认为有一个说明符。
首先,您应该将非洲标准时间文化信息用于您的;
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());
}
}
}
试试这个:
DateTime date = DateTime.Parse(yourDateTimeString);
没有办法处理(东非标准时间)。
假设 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);