yyyyMMddHHmmssfff
の形式の文字列がある場合、たとえば20110815174346225
。その文字列からDateTimeオブジェクトを作成するにはどうすればよいですか。私は以下を試しました
DateTime TimeStamp = DateTime.Parse(Data[1], "yyyyMMddHHmmssfff");
ただし、次のエラーが発生します。
Error 1 The best overloaded method match for 'System.DateTime.Parse(string, System.IFormatProvider)' has some invalid arguments C:\Documents and Settings\rkelly1\Desktop\sd\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 67 29 WindowsFormsApplication1
Error 2 Argument 2: cannot convert from 'string' to 'System.IFormatProvider' C:\Documents and Settings\rkelly1\Desktop\sd\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 67 53 WindowsFormsApplication1
var sDate = "20110815174346225";
var oDate = DateTime.ParseExact(sDate, "yyyyMMddHHmmssfff", CultureInfo.CurrentCulture);
あなたは使用する必要があります
DateTime time = DateTime.ParseExact(String,String, IFormatProvider);
最初の引数文字列が日付になります。 2番目の引数文字列がフォーマットになります3番目の引数はカルチャ情報(IFormatProvider)です
だからあなたは持っているでしょう
DateTime TimeStamp = DateTime.ParseExact(Data[1],"yyyyMMddHHmmssfff",CultureInfo.InvariantCulture);
カルチャ情報は、「sの解釈に使用されるカルチャを表すCultureInfoオブジェクトです。DateTimeFormatプロパティによって返されるDateTimeFormatInfoオブジェクトは、sのシンボルとフォーマットを定義します。」 MSDNから。
詳細については、こちらのリンクをご覧ください。 http://msdn.Microsoft.com/en-us/library/kc8s65zs.aspx
使用する DateTime.ParseExact
:
DateTime dateTime = DateTime.ParseExact("[Your Date Here]",
"yyyyMMddHHmmssfff",
CultureInfo.InvariantCulture);
これが MSDN Docs です。
20151221T031901の形式の日付がありました
これを日時に変換するために、この形式を使用することができました
DateTime.ParseExact("20151221T031901","yyyyMMddTHHmmss" , System.Globalization.CultureInfo.CurrentCulture)
静的メソッドDateTime.ParseExact
を使用する必要があります。