从日期时间开始的秒数

时间:2015-07-23 04:41:08

标签: c#

我想从日期时间开始/删除秒数。我检查了一些解决方案,但使用格式字符串显示解决方案,如

DateTime datetime = DateTime.UtcNow;

这个日期时间也有秒,但我想从这个日期时间开始几秒钟。

内联注释:我想使用任何内置函数或正则表达式来删除秒。

预期输入:08/02/2015 09:22:45(不清楚stringDateTime

结果:08/02/2015 09:22:00(不清楚stringDateTime

10 个答案:

答案 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实际上分别存储为DateTimeSpan(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