gpt4 book ai didi

c# - 让 datetime.now 返回到最近的秒数

转载 作者:可可西里 更新时间:2023-11-01 08:30:39 26 4
gpt4 key购买 nike

我有一个“要求”将时间戳记为最接近的秒数……但并不比这更准确。四舍五入或截断时间都可以。

我想到了这个可憎的事

 dateTime = DateTime.Parse(DateTime.UtcNow.ToString("U"));

(U 是长格式日期和时间。“2007 年 1 月 3 日 17:25:30”)

是否有一些不那么可怕的方法来实现这一点?

编辑:所以从链接的截断毫秒答案(感谢约翰奥多姆)我要这样做

 private static DateTime GetCurrentDateTimeNoMilliseconds()
{
var currentTime = DateTime.UtcNow;
return new DateTime(currentTime.Ticks - (currentTime.Ticks % TimeSpan.TicksPerSecond), currentTime.Kind);
}

几乎没有那么可怕.. 但它确实保留了我关心的日期时间的“种类”。我的解决方案没有。

最佳答案

您可以将其实现为一个扩展方法,允许您使用底层 Ticks 将给定的 DateTime 修剪到指定的精度:

public static DateTime Trim(this DateTime date, long ticks) {
return new DateTime(date.Ticks - (date.Ticks % ticks), date.Kind);
}

然后很容易将日期调整到各种精度,如下所示:

DateTime now = DateTime.Now;
DateTime nowTrimmedToSeconds = now.Trim(TimeSpan.TicksPerSecond);
DateTime nowTrimmedToMinutes = now.Trim(TimeSpan.TicksPerMinute);

关于c# - 让 datetime.now 返回到最近的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com