Ejemplo n.º 1
0
 /// <summary>
 /// Converts a 'unix time' (which is expressed as the number of seconds/milliseconds since
 /// midnight on January 1st 1970) to a .Net <see cref="DateTime" />.
 /// </summary>
 /// <param name="unixTime">The unix time.</param>
 /// <param name="precision">The desired precision.</param>
 /// <returns>
 /// The <see cref="DateTime" />.
 /// </returns>
 internal static DateTime FromUnixTime(this long unixTime, UnixTimePrecision precision = UnixTimePrecision.Seconds)
 {
     if (precision == UnixTimePrecision.Seconds)
     {
         return(EPOCH.AddSeconds(unixTime));
     }
     if (precision == UnixTimePrecision.Milliseconds)
     {
         return(EPOCH.AddMilliseconds(unixTime));
     }
     throw new Exception($"Unknown precision: {precision}");
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Converts a .Net <see cref="DateTime" /> into a 'Unix time' (which is expressed as the number
        /// of seconds/milliseconds since midnight on January 1st 1970).
        /// </summary>
        /// <param name="date">The date.</param>
        /// <param name="precision">The desired precision.</param>
        /// <returns>
        /// The numer of seconds/milliseconds since midnight on January 1st 1970.
        /// </returns>
        internal static long ToUnixTime(this DateTime date, UnixTimePrecision precision = UnixTimePrecision.Seconds)
        {
            var diff = date.ToUniversalTime() - EPOCH;

            if (precision == UnixTimePrecision.Seconds)
            {
                return(Convert.ToInt64(diff.TotalSeconds));
            }
            if (precision == UnixTimePrecision.Milliseconds)
            {
                return(Convert.ToInt64(diff.TotalMilliseconds));
            }
            throw new Exception($"Unknown precision: {precision}");
        }