web-dev-qa-db-ja.com

c#-タイムスタンプを日付に変換する方法は?

XMLドキュメントからタイムスタンプを取得しています。今、タイムスタンプを日付形式に変換したいと思います(13-May-13)

XmlNodeList cNodes = xncomment.SelectNodes("comment");
foreach (XmlNode node in cNodes)
{
    //I'm getting this "1372061224000" in comment-date
    string comment_date = node["creation-timestamp"].InnerText;
}

何か案は?前もって感謝します。

12
user2500094

これがJavaタイムスタンプのように見える場合、以下を使用してください:

var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(1372061224000 / 1000d)).ToLocalTime();
Console.WriteLine(dt); // Prints: 6/24/2013 10:07:04 AM
27
Teoman Soygul

最後に、私はtime stampDateに変換する方法を見つけました&&Datetime stampに変換しました。プロジェクトの人々のいくつかの場所で、日付をタイムスタンプとして保持しているため、すぐに違いがわかります。したがって、この場合、テーブルの列をIntまたはタイムスタンプとして保持するために使用します。問題は、アプリケーションでデータを表示しているときに、データを日付変数に変換する必要があることです。そのため、次のコードを使用してtime stampDateに変換できます。

int ts = 1451174400;
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(ts).ToLocalTime();
string formattedDate = dt.ToString("dd-MM-yyyy");

これで、この変数から任意の日付形式を取得できます。

2番目のケースでDatetime stampに変換する場合は、次のコードを確認してください。

int ts = (dt.Ticks - 621356166000000000) / 10000000;

ここで、dtは日付時刻変数であり、日付値を保持しています。

4
Sapnandu

多分これを交換してください:

    foreach (XmlNode node in cNodes)
{
    //I'm getting this "1372061224000" in comment-date
    string comment_date = node["creation-timestamp"].InnerText;
}

沿って :

foreach (XmlNode node in cNodes)
{
    Datetime comment_date = new DateTime(Convert.ToInt32(node["creation-timestamp"]);
}
2
user1501990

ありがとうございます。

最後に私は出力を得ました

foreach (XmlNode node in cNodes)
{
    comment_timestamp = node["creation-timestamp"].InnerText;
    DateTime comment_date1 = new DateTime(Convert.ToInt64(comment_timestamp));
    comment_date = Convert.ToDateTime(comment_date1).ToString("dd-MMM-yy");
}

出力:

01-MAY-13
1
user2500094