public static class DateTimeFormatUtils
private static DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
private static CultureInfo CurrentCulture => Thread.CurrentThread.CurrentCulture;
private static CultureInfo InvariantCulture => CultureInfo.InvariantCulture;
public static DateTime ToDateTime(string str)
return DateTime.Parse(str, CurrentCulture.DateTimeFormat);
public static DateTime ToDateTime(string str, DateTimeStyles dateTimeStyle)
return DateTime.Parse(str, CurrentCulture.DateTimeFormat, dateTimeStyle);
public static DateTime ToDateTime(string str, string format)
return DateTime.ParseExact(str, format, CurrentCulture.DateTimeFormat);
public static DateTime ToDateTime(string str, string format, DateTimeStyles dateTimeStyle)
return DateTime.ParseExact(str, format, CurrentCulture.DateTimeFormat, dateTimeStyle);
public static string ToString(DateTime dateTime)
return dateTime.ToString(CurrentCulture.DateTimeFormat);
public static string ToString(DateTime dateTime, string format)
return dateTime.ToString(format, CurrentCulture.DateTimeFormat);
public static string ToLongDateTimeString(DateTime dateTime)
return ToString(DateTime.Now, "F");
public static string ToLongDateString(DateTime dateTime)
return ToString(DateTime.Now, "D");
public static string ToLongTimeString(DateTime dateTime)
return ToString(DateTime.Now, "T");
public static string ToKSQlFormat(this DateTime dateTime)
return "{ts'" + dateTime.ToString("yyyy-MM-dd HH:mm:ss") + "'}";
public static bool IsValidDate(this DateTime dateTime)
if (dateTime.IsNullOrEmpty())
if (dateTime == DateTime.MinValue)
if (dateTime.ToString("yyyy-MM-dd") == "1900-01-01")
public static DateTime BeginDateTimeOfDay(this DateTime dateTime)
return Convert.ToDateTime(dateTime.ToString("yyyy-MM-dd") + " 00:00:00");
public static DateTime EndDateTimeOfDay(this DateTime dateTime)
return Convert.ToDateTime(dateTime.ToString("yyyy-MM-dd") + " 23:59:59");
public static long CurrentTimeMillis()
return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
public static long GetTimestamp(this DateTime dt)
return CurrentTimeMillis() / 1000;
