using Microsoft.Extensions.DependencyInjection;
using System.Globalization;
public static void Main()
Console.WriteLine(d.ToDecimalString());
Console.WriteLine(d.ToDecimalString());
Console.WriteLine(d2.ToDecimalString());
DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString(CultureInfo.InvariantCulture));
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fff"));
Console.WriteLine(dt.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
Console.WriteLine(dt.ToString("s", CultureInfo.InvariantCulture));
Console.WriteLine(DateTime.UtcNow.ToString("o"));
Console.WriteLine(dt.ToString("MMM dd, yyyy", CultureInfo.InvariantCulture));
public static class Utils
const string DATE_FORMAT = "yyyy'/'MM'/'dd";
const string TIME_FORMAT = "HH:mm:ss:fff";
public static string String(this object value)
if(value?.GetType() == typeof(string))
else if (value?.GetType() == typeof(decimal))
return ((decimal)value).ToDecimalString();
else if (value?.GetType() == typeof(decimal?))
return ((decimal?)value).ToDecimalString();
else if(value?.GetType() == typeof(DateTime))
return ((DateTime)value).ToDateString();
return value?.ToString();
public static string ToDateTimeString(this DateTime date)
return date.ToString(string.Format("{0} {1}", DATE_FORMAT, TIME_FORMAT), CultureInfo.InvariantCulture);
public static string ToDateString(this DateTime date)
return date.ToString(string.Format("{0}", DATE_FORMAT), CultureInfo.InvariantCulture);
public static string ToDecimalString(this decimal? value)
Console.WriteLine("null");
Console.WriteLine("Not null");
return ((decimal)value).ToDecimalString();
public static string ToDecimalString(this decimal value)
return value.ToString("0.00####", CultureInfo.InvariantCulture);