public override string ToString()
        {
            string timeValue = HardwareSynchronizedTime?.ToString("hh\\:mm\\:ss\\.fffffff", CultureInfo.InvariantCulture) ??
                               SoftwareTimeInUtc.ToString("yyyy-MM-dd HH:mm:ss.fff", DateTimeFormatInfo.InvariantInfo);

            switch (Accuracy)
            {
            case TimeAccuracy.UserEdited:
                return(timeValue + "*");

            case TimeAccuracy.LowPrecision:
                return(timeValue + "~");

            default:
                return(timeValue);
            }
        }
 public override int GetHashCode()
 {
     return(HardwareSynchronizedTime.GetHashCode() ^ SoftwareTimeInUtc.GetHashCode() ^ Accuracy.GetHashCode());
 }