var utcDateTime = DateTime.UtcNow; var localDateTime = TimeZone.CurrentTimeZone.ToLocalTime(utcDateTime);
[EDIT] To answer your comment: โwant to change the long value that is passed to DateTime.FromFileTimeUtc .. so that it gives the same value when passed to DateTime.FromFileTime '
private static long ConvertFileTimeToLocalTime(long fileTime) { return fileTime + ((long)TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalMilliseconds * 10000); }
Test:
var fileTime = DateTime.Now.ToFileTime(); var wrongTime = DateTime.FromFileTimeUtc(fileTime); var correctTime = DateTime.FromFileTimeUtc(ConvertFileTimeToLocalTime(fileTime));
source share