我从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;
}
有什么想法吗?提前谢谢。
答案 0 :(得分:27)
鉴于这看起来像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
答案 1 :(得分:4)
最后,我找到了如何将时间戳转换为日期& 日期到时间戳。我发现项目中的一些地方人们将日期作为时间戳来快速获得差异。所以在这种情况下,他们使用将表列保持为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是日期时间变量&持有日期值。
答案 2 :(得分:2)
也许替换这个:
foreach (XmlNode node in cNodes)
{
//I'm getting this "1372061224000" in comment-date
string comment_date = node["creation-timestamp"].InnerText;
}
by:
foreach (XmlNode node in cNodes)
{
Datetime comment_date = new DateTime(Convert.ToInt32(node["creation-timestamp"]);
}
答案 3 :(得分:1)
感谢所有人。
最后我得到了输出
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
答案 4 :(得分: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) Method