如何将时间戳转换为日期

本文关键字:日期 转换 时间戳 | 更新日期: 2023-09-27 18:19:52

我正在从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;
}

有什么想法吗?提前谢谢。

如何将时间戳转换为日期

假设这看起来像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

最后我找到了如何将时间戳转换为日期&日期到时间戳。我发现在项目中的一些地方,人们把日期作为时间戳,以便快速获得差异。所以在这种情况下,他们使用表列作为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是日期-时间变量&持有日期值。

也许可以替换这个:

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

感谢大家。

最后我得到了输出

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

您可以使用DateTimeOffsetFromUnixTimeSeconds方法

 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)Method