12

次の関数を使用してDateTimeから/に変換しましたstring:

DATE_OBJ.ToString(DATE_FORMAT);

DateTime.ParseExact(Date_string, DATE_FORMAT, null);

今、私は次の形式で作業する必要があります2012-03-20T14:18:25.000+04:00

オブジェクトから正しく変換してそのようstringに生成するには、どの形式を使用すればよいですか?stringDateTime

4

4 に答える 4

14

DateTime からその形式に移動するには、

DateTime dt = new DateTime();
dt.ToString("o");

そしてそのフォーマットからDateTimeへ

DateTimeOffset.Parse(dateString);

DateTime 形式の詳細は次のとおりです: http://www.dotnetperls.com/datetime-format

于 2013-01-10T07:06:02.043 に答える
8

次のように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");
于 2013-01-10T07:16:38.257 に答える
4

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

しかし、あなたはもっとよく見てくださいDateTimeOffsetDateTime vs DateTimeOffset

(お勧めできませんが、それを偽造してまだ使用するDateTime: string.Format("{0:s}.{0:fff}+04:00", dt))

于 2013-01-10T07:04:33.887 に答える
-3

それが受け取った文字列である場合は、文字列を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);
于 2013-01-10T06:56:02.353 に答える