P
philibertperusse
I have stumble on problems with ToFileTime and ToFileTimeUtc.... No
matter what I try, I always get the same value out of both of them! You
can see that below:
Anyone has an idea why the following code:
class Program
{
static void CompareDateTime(DateTime dt, DateTime dtUtc)
{
long ftLastWriteTime = dt.ToFileTime();
long ftLastWriteTimeUtc = dt.ToFileTimeUtc();
System.Console.WriteLine("{0} in file time is
{1}.", dt, ftLastWriteTime);
System.Console.WriteLine("{0} in file time UTC is
{1}.", dt, ftLastWriteTimeUtc);
ftLastWriteTime = dtUtc.ToFileTime();
ftLastWriteTimeUtc = dtUtc.ToFileTimeUtc();
System.Console.WriteLine("{0} UTC in file time is
{1}.", dtUtc, ftLastWriteTime);
System.Console.WriteLine("{0} UTC in file time UTC is
{1}.", dtUtc, ftLastWriteTimeUtc);
}
static void Main(string[] args)
{
string filePath;
filePath = "D:\\fsum.exe";
System.DateTime dtLastWriteTime;
System.DateTime dtLastWriteTimeUtc;
System.Console.WriteLine("== INITIALIZING DATETIME WITH
File.GetLastWriteTime ==");
dtLastWriteTime =
System.IO.File.GetLastWriteTime(filePath);
dtLastWriteTimeUtc =
System.IO.File.GetLastWriteTimeUtc(filePath);
CompareDateTime(dtLastWriteTime, dtLastWriteTimeUtc);
System.Console.WriteLine("== INITIALIZING DATETIME WITH
DateTime.Now ==");
dtLastWriteTime = DateTime.Now;
dtLastWriteTimeUtc = DateTime.UtcNow;
CompareDateTime(dtLastWriteTime, dtLastWriteTimeUtc);
}
}
Gives the following output:
== INITIALIZING DATETIME WITH File.GetLastWriteTime ==
2004-07-06 21:47:32 in file time is 127336384520000000.
2004-07-06 21:47:32 in file time UTC is 127336384520000000.
2004-07-07 01:47:32 UTC in file time is 127336384520000000.
2004-07-07 01:47:32 UTC in file time UTC is 127336384520000000.
== INITIALIZING DATETIME WITH DateTime.Now ==
2006-07-17 10:25:21 in file time is 127976199219998752.
2006-07-17 10:25:21 in file time UTC is 127976199219998752.
2006-07-17 14:25:21 UTC in file time is 127976199219998752.
2006-07-17 14:25:21 UTC in file time UTC is 127976199219998752.
matter what I try, I always get the same value out of both of them! You
can see that below:
Anyone has an idea why the following code:
class Program
{
static void CompareDateTime(DateTime dt, DateTime dtUtc)
{
long ftLastWriteTime = dt.ToFileTime();
long ftLastWriteTimeUtc = dt.ToFileTimeUtc();
System.Console.WriteLine("{0} in file time is
{1}.", dt, ftLastWriteTime);
System.Console.WriteLine("{0} in file time UTC is
{1}.", dt, ftLastWriteTimeUtc);
ftLastWriteTime = dtUtc.ToFileTime();
ftLastWriteTimeUtc = dtUtc.ToFileTimeUtc();
System.Console.WriteLine("{0} UTC in file time is
{1}.", dtUtc, ftLastWriteTime);
System.Console.WriteLine("{0} UTC in file time UTC is
{1}.", dtUtc, ftLastWriteTimeUtc);
}
static void Main(string[] args)
{
string filePath;
filePath = "D:\\fsum.exe";
System.DateTime dtLastWriteTime;
System.DateTime dtLastWriteTimeUtc;
System.Console.WriteLine("== INITIALIZING DATETIME WITH
File.GetLastWriteTime ==");
dtLastWriteTime =
System.IO.File.GetLastWriteTime(filePath);
dtLastWriteTimeUtc =
System.IO.File.GetLastWriteTimeUtc(filePath);
CompareDateTime(dtLastWriteTime, dtLastWriteTimeUtc);
System.Console.WriteLine("== INITIALIZING DATETIME WITH
DateTime.Now ==");
dtLastWriteTime = DateTime.Now;
dtLastWriteTimeUtc = DateTime.UtcNow;
CompareDateTime(dtLastWriteTime, dtLastWriteTimeUtc);
}
}
Gives the following output:
== INITIALIZING DATETIME WITH File.GetLastWriteTime ==
2004-07-06 21:47:32 in file time is 127336384520000000.
2004-07-06 21:47:32 in file time UTC is 127336384520000000.
2004-07-07 01:47:32 UTC in file time is 127336384520000000.
2004-07-07 01:47:32 UTC in file time UTC is 127336384520000000.
== INITIALIZING DATETIME WITH DateTime.Now ==
2006-07-17 10:25:21 in file time is 127976199219998752.
2006-07-17 10:25:21 in file time UTC is 127976199219998752.
2006-07-17 14:25:21 UTC in file time is 127976199219998752.
2006-07-17 14:25:21 UTC in file time UTC is 127976199219998752.