【问题标题】:c# - How to convert Timestamp to Date?c# - 如何将时间戳转换为日期?
【发布时间】:2013-06-23 10:31:24
【问题描述】:

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

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

【问题讨论】:

标签: c# asp.net date


【解决方案1】:

鉴于这看起来像一个 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

【讨论】:

  • 这不是正常的时间戳。请保重
【解决方案2】:

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

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 是日期时间变量并保存一个日期值。

【讨论】:

  • 这个答案非常适合普通时间戳
  • 这是我浏览过的众多答案中的第一个有效答案。
【解决方案3】:

也许替换这个:

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

【讨论】:

    【解决方案4】:

    谢谢大家。

    终于得到了输出

    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
    

    【讨论】:

      【解决方案5】:

      您可以使用 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) Method

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-24
        • 1970-01-01
        • 2019-08-24
        • 2012-04-10
        • 2016-11-26
        • 2019-04-03
        相关资源
        最近更新 更多