using System.Globalization; using SmartFormat.Core.Extensions; namespace OliverBooth.Extensions.SmartFormat; /// /// Represents a SmartFormat formatter that formats a date. /// public sealed class DateFormatter : IFormatter { /// public bool CanAutoDetect { get; set; } = true; /// public string Name { get; set; } = "date"; /// public bool TryEvaluateFormat(IFormattingInfo formattingInfo) { if (formattingInfo.CurrentValue is not string value) return false; if (!DateTime.TryParseExact(value, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime date)) return false; formattingInfo.Write(date.ToString(formattingInfo.Format?.ToString(), CultureInfo.InvariantCulture)); return true; } }