c# - 有没有更好的方法将 DateTime 修剪到特定精度?

标签 c# .net datetime

将 DateTime 对象修剪到特定精度的最佳方法是什么?例如,如果我有一个值为“2008-09-29 09:41:43”的日期时间,但我只希望它精确到分钟,还有比这更好的方法吗?

private static DateTime TrimDateToMinute(DateTime date)
{
    return new DateTime(
        date.Year, 
        date.Month, 
        date.Day, 
        date.Hour, 
        date.Minute, 
        0);
}

我真正想要的是让它可变,这样我就可以将它的精度设置为秒、分钟、小时或天。

最佳答案

static class Program
{
    //using extension method:
    static DateTime Trim(this DateTime date, long roundTicks)
    {
        return new DateTime(date.Ticks - date.Ticks % roundTicks, date.Kind);
    }

    //sample usage:
    static void Main(string[] args)
    {
        Console.WriteLine(DateTime.Now);
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerDay));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerHour));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerMillisecond));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerMinute));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerSecond));
        Console.ReadLine();
    }

}

关于c# - 有没有更好的方法将 DateTime 修剪到特定精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/152774/

相关文章:

c# - 将 "Max Length"添加到正则表达式

c# - 使用 lambda 重新排列 List<T>

c# - 将方法添加到自动生成的类

c# - 使用当前日期创建文件名

c# - 日期时间 + 计时器打勾?

c# - c# 事件是串行处理还是并行处理?

c# - 电子邮件地址混淆.net asp

c# - 编程引用任何人?

.net - Windows Mobile 开发的最佳可用在线资源是什么?

java - 在java中将时间加在一起