public static ToDateTimeFromMillisecondsSinceEpoch ( long millisecondsSinceEpoch ) : System.DateTime | ||
millisecondsSinceEpoch | long | The number of milliseconds since Unix epoch. |
Résultat | System.DateTime |
public static DateTime ToDateTimeFromMillisecondsSinceEpoch(long millisecondsSinceEpoch)
{
if (millisecondsSinceEpoch < BsonConstants.DateTimeMinValueMillisecondsSinceEpoch ||
millisecondsSinceEpoch > BsonConstants.DateTimeMaxValueMillisecondsSinceEpoch)
{
var message = string.Format(
"The value {0} for the BsonDateTime MillisecondsSinceEpoch is outside the"+
"range that can be converted to a .NET DateTime.",
millisecondsSinceEpoch);
throw new ArgumentOutOfRangeException("millisecondsSinceEpoch", message);
}
// MaxValue has to be handled specially to avoid rounding errors
if (millisecondsSinceEpoch == BsonConstants.DateTimeMaxValueMillisecondsSinceEpoch)
{
return DateTime.SpecifyKind(DateTime.MaxValue, DateTimeKind.Utc);
}
else
{
return BsonConstants.UnixEpoch.AddTicks(millisecondsSinceEpoch * 10000);
}
}
/// <summary> /// Initializes a new instance of the BsonDateTime class. /// </summary> /// <param name="millisecondsSinceEpoch">Milliseconds since Unix Epoch.</param> public BsonDateTime(long millisecondsSinceEpoch) : base(BsonType.DateTime) { this.millisecondsSinceEpoch = millisecondsSinceEpoch; if (millisecondsSinceEpoch >= BsonConstants.DateTimeMinValueMillisecondsSinceEpoch && millisecondsSinceEpoch <= BsonConstants.DateTimeMaxValueMillisecondsSinceEpoch) { this.value = BsonUtils.ToDateTimeFromMillisecondsSinceEpoch(millisecondsSinceEpoch); } }