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.
/// Convert a date time object to Unix time representation.
/// <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.
/// Convert Unix time value to a DateTime object.
/// <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);
and date before 1970 ???? By sample 1950, 1900 etc….
What happens on January 19, 2038?
Very helpfull :)
Thanks for posting this. Its Really helpful for beginners.