// Copyright (c) Umbraco.
// See LICENSE for more details.
using System.Globalization;
namespace Umbraco.Extensions;
public static class DateTimeExtensions
{
public enum DateTruncate
{
Year,
Month,
Day,
Hour,
Minute,
Second,
}
///
/// Returns the DateTime as an ISO formatted string that is globally expectable
///
///
///
public static string ToIsoString(this DateTime dt) =>
dt.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
public static DateTime TruncateTo(this DateTime dt, DateTruncate truncateTo)
{
if (truncateTo == DateTruncate.Year)
{
return new DateTime(dt.Year, 1, 1);
}
if (truncateTo == DateTruncate.Month)
{
return new DateTime(dt.Year, dt.Month, 1);
}
if (truncateTo == DateTruncate.Day)
{
return new DateTime(dt.Year, dt.Month, dt.Day);
}
if (truncateTo == DateTruncate.Hour)
{
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0);
}
if (truncateTo == DateTruncate.Minute)
{
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0);
}
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);
}
}