重複の可能性:
文字列からの日時形式?
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);
指定子の意味は次のとおりです。
さまざまな形式指定子の詳細については、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());
}
}
}
(東アフリカ標準時)の扱いはありません。
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);
これを試して:
DateTime date = DateTime.Parse(yourDateTimeString);