次の関数を使用してDateTime
から/に変換しましたstring
:
DATE_OBJ.ToString(DATE_FORMAT);
DateTime.ParseExact(Date_string, DATE_FORMAT, null);
今、私は次の形式で作業する必要があります2012-03-20T14:18:25.000+04:00
オブジェクトから正しく変換してそのようstring
に生成するには、どの形式を使用すればよいですか?string
DateTime
DateTime からその形式に移動するには、
DateTime dt = new DateTime();
dt.ToString("o");
そしてそのフォーマットからDateTimeへ
DateTimeOffset.Parse(dateString);
DateTime 形式の詳細は次のとおりです: http://www.dotnetperls.com/datetime-format
次のようにDateTimeOffSetを使用することをお勧めします。
string str = " 2012-03-20T14:18:25.000+04:00";
DateTimeOffset dto = DateTimeOffset.Parse(str);
//Get the date object from the string.
DateTime dtObject = dto.DateTime;
//Convert the DateTimeOffSet to string.
string newVal = dto.ToString("o");
DateTime
情報をDateTime
保持していないため、 からこれを行うことはできませんTimeZone
。
これは近いです:string.Format("{0:s}", dt)
を与え2012-03-20T14:18:25
ます. 参照: http://www.csharp-examples.net/string-format-datetime/
これを次のように拡張できます: string.Format("{0:s}.{0:fff}", dt)
、これにより、2012-03-20T14:18:25.000
しかし、あなたはもっとよく見てくださいDateTimeOffset
:DateTime vs DateTimeOffset
(お勧めできませんが、それを偽造してまだ使用するDateTime
: string.Format("{0:s}.{0:fff}+04:00", dt)
)
それが受け取った文字列である場合は、文字列をTで分割し、文字列全体のDateコンポーネントである最初の部分のみを使用して、それを解析できます。
元:
string dateTimeAsString = "2012-03-20T14:18:25.000+04:00";
string dateComponent = dateTimeAsString.Splic('T')[0];
DateTime date = DateTime.ParseExact(dateComponent, "yyyy-MM-dd",null);