// Copyright © 2016 The CefSharp Authors. All rights reserved. // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. using System; namespace CefSharp.Internals { /// /// Mapping to/from CefBaseTime /// public static class CefTimeUtils { private static IBaseTimeConverter BaseTimeConverter = new BaseTimeConverter(); /// /// Assign your own custom converter /// used to convert to/from CefBaseTime /// /// converter /// /// Must be called in all processes for custom conversion of DateTime /// used by the Sync Javascript Binding (.Net 4.x only) /// public static void UseBaseTimeConveter(IBaseTimeConverter converter) { if (converter == null) { throw new ArgumentNullException(nameof(converter)); } BaseTimeConverter = converter; } /// /// Converts from CefBaseTime to DateTime? /// /// /// Represents a wall clock time in UTC. Values are not guaranteed to be monotonically /// non-decreasing and are subject to large amounts of skew. Time is stored internally /// as microseconds since the Windows epoch (1601). /// /// if is 0 then returns null otherwise returns a of public static DateTime? FromBaseTimeToNullableDateTime(long val) { if(val == 0) { return null; } return FromBaseTimeToDateTime(val); } /// /// Converts from CefBaseTime to DateTime /// /// /// Represents a wall clock time in UTC. Values are not guaranteed to be monotonically /// non-decreasing and are subject to large amounts of skew. Time is stored internally /// as microseconds since the Windows epoch (1601). /// /// returns a of public static DateTime FromBaseTimeToDateTime(long val) { return BaseTimeConverter.FromBaseTimeToDateTime(val); } /// /// Converts from DateTime to CefBaseTime /// /// DateTime /// /// Represents a wall clock time in UTC. Time as microseconds since the Windows epoch (1601). /// public static long FromDateTimeToBaseTime(DateTime dateTime) { return BaseTimeConverter.FromDateTimeToBaseTime(dateTime); } } }