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())
{
return false;
}
if (dateTime == DateTime.MinValue)
{
return false;
}
if (dateTime.ToString("yyyy-MM-dd") == "1900-01-01")
{
return false;
}
return true;
}
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;
}
}