如何序列化秒显示为0的DateTime

本文关键字:DateTime 显示 序列化 | 更新日期: 2023-09-27 18:12:56

我有一些DateTime将以格式计算:dtDateTime.ToString("M/dd/yyyy h:mm:ss tt")和我想保持 ss格式,但只是将值设置为零。例子:

之前改变:

"7/14/2014 7:34:27 AM"

改变后

:

"7/14/2014 7:34:00 AM"

我已经试过了:

dtDateTime = my DateTime
TimeSpan secondsDifference = dtDateTime.Subtract(new System.DateTime(0, 0, 0, 0, 0, dtDateTime.Second)
dtDateTime = dtDateTime.Date - secondsDifference;
return dtDateTime.ToString("M/dd/yyyy h:mm:ss tt")

这给了我一个错误,在dtDateTime.Subtract()表达式上,因为这个日期是在1970年之前,当(我认为)Unix时间戳开始。如何简单地将dtDateTimeseconds部分设置为00 ?

NB -代码简洁是很重要的。谢谢所有。

如何序列化秒显示为0的DateTime

myDate = myDate.AddSeconds(-myDate.Second)

如果目的是只显示00秒,那么只需将ss替换为00

dtDateTime.ToString("M/dd/yyyy h:mm:00 tt", CultureInfo.InvariantCulture)

我还没有试过,但将格式更改为"M/dd/yyyy h:mm:00 tt"应该可以工作。

您可以尝试以下操作:

// create a new datetime based on this you have
DateTime dt = new DateTime(inputDate.Year, 
                           inputDate.Month, 
                           inputDate.Day, 
                           inputDay.Hour, 
                           inputDay.Minute, 
                           0);

// print it to the console
Console.WriteLine(t.ToString("M/dd/yyyy h:mm:ss tt"));