Tag Archives: Unix time
Convert DateTime to Unix time in C#
I’ve been asked recently by a few people how to convert Unix time to DateTime format (and the other way around) so I decided to make a post about it explaining how Unix time works and provide a snippet to help people that want to convert DateTime to Unix time or vise versa.
Unix time is basically the number of seconds that have passed since 1/1/1970 00:00:00 (UTC). In order to convert a specific date and time to a Unix time value we will need to subtract the date above from the date we want to convert to Unix time.
Example:
1 2 3 4 5 6 7 8 9 10 11 | /// <summary> /// Convert a date time object to Unix time representation. /// </summary> /// <param name="datetime">The datetime object to convert to Unix time stamp.</param> /// <returns>Returns a numerical representation (Unix time) of the DateTime object.</returns> public static long ConvertToUnixTime(DateTime datetime) { DateTime sTime = new DateTime(1970, 1, 1,0,0,0,DateTimeKind.Utc); return (long)(datetime - sTime).TotalSeconds; } |
Now if we want to convert a Unix time value to a DateTime object the the principle is the same. We take the 1/1/1970 00:00:00 (UTC) date and add the value of the Unix time as seconds to that date. The result would be the actual DateTime of the Unix time stamp.
Example:
1 2 3 4 5 6 7 8 9 10 | /// <summary> /// Convert Unix time value to a DateTime object. /// </summary> /// <param name="unixtime">The Unix time stamp you want to convert to DateTime.</param> /// <returns>Returns a DateTime object that represents value of the Unix time.</returns> public static DateTime UnixTimeToDateTime(long unixtime) { DateTime sTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); return sTime.AddSeconds(unixtime); } |