Created
August 15, 2018 04:44
-
-
Save ZhenDeng/f9bc5efdcfff778788835413ab8a8edb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// <summary> | |
/// Converts the given date value to epoch time. | |
/// </summary> | |
public static long ToEpochTime(this DateTime dateTime) | |
{ | |
var date = dateTime.ToUniversalTime(); | |
var ticks = date.Ticks - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).Ticks; | |
var ts = ticks / TimeSpan.TicksPerSecond; | |
return ts; | |
} | |
/// <summary> | |
/// Converts the given date value to epoch time. | |
/// </summary> | |
public static long ToEpochTime(this DateTimeOffset dateTime) | |
{ | |
var date = dateTime.ToUniversalTime(); | |
var ticks = date.Ticks - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero).Ticks; | |
var ts = ticks / TimeSpan.TicksPerSecond; | |
return ts; | |
} | |
/// <summary> | |
/// Converts the given epoch time to a <see cref="DateTime"/> with <see cref="DateTimeKind.Utc"/> kind. | |
/// </summary> | |
public static DateTime ToDateTimeFromEpoch(this long intDate) | |
{ | |
var timeInTicks = intDate * TimeSpan.TicksPerSecond; | |
return new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddTicks(timeInTicks); | |
} | |
/// <summary> | |
/// Converts the given epoch time to a UTC <see cref="DateTimeOffset"/>. | |
/// </summary> | |
public static DateTimeOffset ToDateTimeOffsetFromEpoch(this long intDate) | |
{ | |
var timeInTicks = intDate * TimeSpan.TicksPerSecond; | |
return new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero).AddTicks(timeInTicks); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment