From 0a0aef7d205058305489c54df43619526662416c Mon Sep 17 00:00:00 2001 From: FH Date: Mon, 28 Nov 2022 18:55:57 +0100 Subject: [PATCH] convert to ISO8601 string --- Mogrify.cs | 152 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 86 insertions(+), 66 deletions(-) diff --git a/Mogrify.cs b/Mogrify.cs index e5bbec2..d08a613 100644 --- a/Mogrify.cs +++ b/Mogrify.cs @@ -61,6 +61,25 @@ namespace FCS.Lib.Utility return TimeStampToDateTime(timestamp).Month == month; } + /// + /// return iso8601 string from timestamp + /// + /// + /// + public static string TimestampToIso8601(long timestamp) + { + return DateTimeIso8601(TimeStampToDateTime(timestamp)); + } + /// + /// return date as ISO + /// + /// + /// + public static string DateTimeIso8601(DateTime date) + { + return date.ToString("o",CultureInfo.InvariantCulture); + } + /// /// Get timestamp range for given datetime /// @@ -99,6 +118,73 @@ namespace FCS.Lib.Utility return $"{TimeStampToDateTime(timestamp):yyyy-MM-dd}"; } + /// + /// get timestamp from current date time + /// + /// + public static long CurrentDateTimeToTimeStamp() + { + return Convert.ToUInt32(DateTimeToTimeStamp(DateTime.Now)); + } + + /// + /// get timestamp from date time + /// + /// + /// + public static long DateTimeToTimeStamp(DateTime dateTime) + { + var bigDate = new DateTime(2038, 1, 19, 0, 0, 0, 0); + var nixDate = new DateTime(1970, 1, 1, 0, 0, 0, 0); + + if (dateTime >= bigDate) + return Convert.ToInt64((bigDate - nixDate).TotalSeconds) + + Convert.ToInt64((dateTime - bigDate).TotalSeconds); + + return Convert.ToInt64((dateTime - nixDate).TotalSeconds); + } + + /// + /// get date time from timestamp + /// + /// + /// + public static DateTime TimeStampToDateTime(long timeStamp) + { + var nixDate = new DateTime(1970, 1, 1, 0, 0, 0, 0); + return nixDate.AddSeconds(timeStamp); + } + + /// + /// get seconds from timespan + /// + /// + /// + public static long TimeSpanToSeconds(TimeSpan timespan) + { + return Convert.ToUInt32(timespan.Ticks / 10000000L); + } + + /// + /// get timespan from seconds + /// + /// + /// + public static TimeSpan SecondsToTimeSpan(long seconds) + { + return TimeSpan.FromTicks(10000000L * seconds); + } + + /// + /// get minutes from timespan + /// + /// + /// + public static long TimespanToMinutes(TimeSpan timespan) + { + return Convert.ToUInt32(timespan.Ticks / 10000000L) / 60; + } + /// /// reverse boolean /// @@ -344,72 +430,6 @@ namespace FCS.Lib.Utility return encoding == null ? null : new MemoryStream(encoding.GetBytes(value ?? "")); } - /// - /// get timestamp from current date time - /// - /// - public static long CurrentDateTimeToTimeStamp() - { - return Convert.ToUInt32(DateTimeToTimeStamp(DateTime.Now)); - } - - /// - /// get timestamp from date time - /// - /// - /// - public static long DateTimeToTimeStamp(DateTime dateTime) - { - var bigDate = new DateTime(2038, 1, 19, 0, 0, 0, 0); - var nixDate = new DateTime(1970, 1, 1, 0, 0, 0, 0); - - if (dateTime >= bigDate) - return Convert.ToInt64((bigDate - nixDate).TotalSeconds) + - Convert.ToInt64((dateTime - bigDate).TotalSeconds); - - return Convert.ToInt64((dateTime - nixDate).TotalSeconds); - } - - /// - /// get date time from timestamp - /// - /// - /// - public static DateTime TimeStampToDateTime(long timeStamp) - { - var nixDate = new DateTime(1970, 1, 1, 0, 0, 0, 0); - return nixDate.AddSeconds(timeStamp); - } - - /// - /// get seconds from timespan - /// - /// - /// - public static long TimeSpanToSeconds(TimeSpan timespan) - { - return Convert.ToUInt32(timespan.Ticks / 10000000L); - } - - /// - /// get timespan from seconds - /// - /// - /// - public static TimeSpan SecondsToTimeSpan(long seconds) - { - return TimeSpan.FromTicks(10000000L * seconds); - } - - /// - /// get minutes from timespan - /// - /// - /// - public static long TimespanToMinutes(TimeSpan timespan) - { - return Convert.ToUInt32(timespan.Ticks / 10000000L) / 60; - } ///// ///// get string from date time