文件时间到字符串
FileTime to string
我正在读取一些存储为 long 的 Microsoft FileTime 值,我正在尝试将其转换为人类可读的日期。
例如,值 131733712713359180
转换为:Wednesday, June 13, 2018 1:47:51pm
。这是使用在线工具完成的,此处:Online time convertor
我在 Java 中运行良好,但当我尝试在 C# 中运行时,我得到了错误的年份。我得到的输出是:13/06/0418 13:47:51
.
我用来进行转换的代码是:
public string CalculateTimestamp(Int64 epoch)
{
DateTime date = DateTime.Now;
try
{
date = new DateTime(epoch);
DateTime filetime = new DateTime(date.ToFileTime());
result = filetime.ToString();
}
catch (Exception uhoh)
{
result = "failedtoparsetimestamp";
}
return result;
}
在 Java 中进行转换时,这是我使用的代码。
public String calculateTimeStamp(long epoch) {
if (epoch == 0) {
return "--";
}
long unixDifference = 11644473600000L;
long timeStamp = (epoch / (10 * 1000)) - unixDifference;
Date date = new Date(timeStamp);
return date.toString();
}
我猜C#转换应该更直接,但我想不通为什么年份不对。 UInt64
和 Int64
我都试过了,都给出了相同的(错误的)结果。
如有任何建议,我们将不胜感激。
谢谢
这是 DateTime
的内置功能,因此无需进行任何调整:
var date = DateTime.FromFileTimeUtc(131733712713359180);
这个returns2018-06-13 13:47:51
我正在读取一些存储为 long 的 Microsoft FileTime 值,我正在尝试将其转换为人类可读的日期。
例如,值 131733712713359180
转换为:Wednesday, June 13, 2018 1:47:51pm
。这是使用在线工具完成的,此处:Online time convertor
我在 Java 中运行良好,但当我尝试在 C# 中运行时,我得到了错误的年份。我得到的输出是:13/06/0418 13:47:51
.
我用来进行转换的代码是:
public string CalculateTimestamp(Int64 epoch)
{
DateTime date = DateTime.Now;
try
{
date = new DateTime(epoch);
DateTime filetime = new DateTime(date.ToFileTime());
result = filetime.ToString();
}
catch (Exception uhoh)
{
result = "failedtoparsetimestamp";
}
return result;
}
在 Java 中进行转换时,这是我使用的代码。
public String calculateTimeStamp(long epoch) {
if (epoch == 0) {
return "--";
}
long unixDifference = 11644473600000L;
long timeStamp = (epoch / (10 * 1000)) - unixDifference;
Date date = new Date(timeStamp);
return date.toString();
}
我猜C#转换应该更直接,但我想不通为什么年份不对。 UInt64
和 Int64
我都试过了,都给出了相同的(错误的)结果。
如有任何建议,我们将不胜感激。
谢谢
这是 DateTime
的内置功能,因此无需进行任何调整:
var date = DateTime.FromFileTimeUtc(131733712713359180);
这个returns2018-06-13 13:47:51