我想从日期时间开始/删除秒数。我检查了一些解决方案,但使用格式字符串显示解决方案,如
DateTime datetime = DateTime.UtcNow;
这个日期时间也有秒,但我想从这个日期时间开始几秒钟。
内联注释:我想使用任何内置函数或正则表达式来删除秒。
预期输入:08/02/2015 09:22:45(不清楚string
或DateTime
)
结果:08/02/2015 09:22:00(不清楚string
或DateTime
)
答案 0 :(得分:19)
你可以做到
DateTime dt = DateTime.Now;
dt = dt.AddSeconds(-dt.Second);
将秒数设置为0.
答案 1 :(得分:15)
您可以创建一个新的日期实例,并将秒设置为0。
DateTime a = DateTime.UtcNow;
DateTime b = new DateTime(a.Year, a.Month, a.Day, a.Hour, a.Minute, 0, DateTimeKind.Utc);
Console.WriteLine(a);
Console.WriteLine(b);
答案 2 :(得分:4)
一个简单的解决方案,可以从DateTime中删除秒和毫秒:
DateTime dt = DateTime.Now;
DateTime secondsStripped = dt.Date.AddHours(dt.Hour).AddMinutes(dt.Minute);
答案 3 :(得分:3)
这个相当优雅的解决方案怎么样?
new DateTime(DateTime.UtcNow.Ticks / 600000000 * 600000000)
...这也将剥夺任何毫秒/微秒/纳秒。
答案 4 :(得分:2)
DateTime
实际上分别存储为Date
和TimeSpan
(TimeOfDay)。我们可以轻松地重新初始化日期,而无需在TimeSpan
初始化中包含秒数。这样还可以确保删除所有剩余的毫秒数。
date = date.Date + new TimeSpan(date.TimeOfDay.Hours, date.TimeOfDay.Minutes, 0);
答案 5 :(得分:1)
DateTime time = DateTime.Now;
string timestring = time.ToString("g");
ToString("g")
会将DateTime
转换为字符串并删除秒数。
输出:03/29/2018 11:11 PM
答案 6 :(得分:1)
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
答案 7 :(得分:1)
作为一个扩展,保持种类并修剪毫秒
public static DateTime TrimSeconds(this DateTime a)
{
return new DateTime(a.Year, a.Month, a.Day, a.Hour, a.Minute, 0, a.Kind);
}
答案 8 :(得分:0)
要获取本地时间,您可以使用:
var dt = DateTime.Now;
dt = dt.AddTicks(-(dt.Ticks % (60 * 10_000_000)));
答案 9 :(得分:-2)
DateTime datetime = DateTime.UtcNow;
Console.WriteLine(datetime.ToString()); // returns in this format 7/23/2015 4:48:33 AM