1

これは私がJSONから持っているような日付です:

"created_time": "1383734307"

だから私のコードは次のとおりです。

var myData = DateTime.ParseExact((string)item.created_time, "ddd MMM dd HH:mm:ss zzzz yyyy", CultureInfo.InvariantCulture);

しかし、私は得るString was not recognized as a valid DateTime.

4

5 に答える 5

6

あなたの番号は、 (Unixエポック)1383734307から経過した秒数のように見えます。次のようにして取得できます1970/01/01 DateTime

DateTime dt = new DateTime(1970, 1, 1).AddSeconds(1383734307);

これは以下を返します:dt = {06/11/2013 10:38:27 AM}

現在、DateTime の解析に使用している形式は無効です。

あなたの場合、それcreated_timeは type のように見えlong/intます.stringにキャストしているので、次のことができます:

DateTime dt = new DateTime(1970, 1, 1).AddSeconds(created_time);

longまたは、次のように解析できます。

DateTime dt = new DateTime(1970, 1, 1).AddSeconds(Convert.ToInt64(created_time));
于 2013-11-06T16:37:02.043 に答える
2

まず、データはDateTimeタイムスタンプではなく、タイムスタンプです。したがって、この質問DateTimeからどのように作成するかを確認してください: UNIXタイムスタンプをDateTimeに、またはその逆に変換する方法は? .

c# の場合は次のようになります。

public static DateTime UnixTimeStampToDateTime( double unixTimeStamp )
{
    // Unix timestamp is seconds past epoch
    System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0);
    dtDateTime = dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime();
    return dtDateTime;
}

次に、メソッドを使用して、インスタンスToStringからフォーマットに一致する日時文字列を生成できます。DateTime

var dateString = myDateTime.ToString("ddd MMM dd HH:mm:ss zzzz yyyy", CultureInfo.InvariantCulture);
于 2013-11-06T16:37:42.117 に答える
1

これは Unix のように見えます (エポックから数秒経過した) タイムスタンプ:

このようなものが必要です

var dateTime = new DateTime(1970,1,1,0,0,0,0);
dateTime = dateTime .AddSeconds( unixTime ).ToLocalTime();
于 2013-11-06T16:37:09.143 に答える