15

我正在从 xml 文档中获取时间戳。现在,我想将时间戳转换为日期格式(2013 年 5 月 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;
}

有任何想法吗?提前致谢。

4

5 回答 5

31

鉴于这看起来像 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
于 2013-06-26T10:24:40.733 回答
7

最后我找到了如何将时间戳转换为日期日期时间戳。我发现项目中的一些地方人们将日期作为时间戳记,以便快速获得差异。所以在这种情况下,他们使用将表列保持为 Int 或时间戳。现在的问题是,在应用程序中显示数据时,您需要将其转换为日期变量。因此,我们可以使用以下代码将时间戳转换为日期

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

现在您可以从此变量获取任何日期格式。

在第二种情况下,如果要将日期转换为时间戳,请检查以下代码。

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

其中 dt 是日期时间变量并保存日期值。

于 2015-12-27T16:08:03.227 回答
2

也许替换这个:

    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"]);
}
于 2013-06-26T10:28:52.503 回答
1

Thanks to all.

Finally I got the output

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");
}

Output:

01-MAY-13
于 2013-06-26T11:41:26.600 回答
0

您可以使用DateTimeOffset的FromUnixTimeSeconds方法

 var dateTime1 = new DateTime(2020, 4, 5, 12, 15, 12);//05.04.2020 12:15:12

 var timeStamp = new DateTimeOffset(dateTime1).ToUnixTimeSeconds(); //1586074512

如果 FromUnixTimeSeconds 的结果与您的原始日期时间不对应,您可以使用 DateTimeOffset 对象的 LocalDateTime 属性。

 var dateTime2 = DateTimeOffset.FromUnixTimeSeconds(timeStamp).DateTime;//05.04.2020 08:15:12
 var dateTime3 = DateTimeOffset.FromUnixTimeSeconds(timeStamp).LocalDateTime;//05.04.2020 12:15:12

有关更多信息,请访问此链接DateTimeOffset.FromUnixTimeSeconds(Int64) 方法

于 2020-04-23T07:13:48.880 回答