/// <summary> /// /// </summary> /// <param name="text"></param> /// <param name="roundUp"></param> /// <param name="timezone"></param> /// <returns></returns> public static DateTime?ToDateTime(string text, bool?roundUp = null, Timezone timezone = Timezone.Browser) { if (string.IsNullOrEmpty(text) || text.Length < NOW.Length) { return(null); } if (DateTimeMathParser.IsDateTime(text, out DateTime absTime)) { return(absTime); } DateTime time = DateTime.Now; var mathString = string.Empty; var index = 0; if (text.Substring(0, NOW.Length) == NOW) { time = timezone == Timezone.UTC ? DateTime.UtcNow : DateTime.Now; mathString = text.Substring(NOW.Length); } else { index = text.IndexOf("||"); var parseString = string.Empty; if (-1 == index) { parseString = text; mathString = string.Empty; } else { parseString = text.Substring(0, index); mathString = text.Substring(index + 2); } // We're going to just require ISO8601 timestamps, k? //time = this.dateTime( parseString, ISO_8601 ); //?? return(null); } return(ShiftDateTime(mathString, time, roundUp)); }
/// <summary> /// /// </summary> /// <param name="text"></param> /// <returns></returns> private static bool IsDateTime(string text) => DateTimeMathParser.IsDateTime(text);