我有一些DateTime' s将以以下格式计算: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时间戳开始了。如何简单地将seconds
的{{1}}部分设置为dtDateTime
?
NB - 代码简洁很重要。谢谢大家。
答案 0 :(得分:11)
如果目的是仅显示00
秒,则只需将ss
替换为00
dtDateTime.ToString("M/dd/yyyy h:mm:00 tt", CultureInfo.InvariantCulture)
答案 1 :(得分:8)
我还没试过,但将格式更改为" M / dd / yyyy h:mm:00 tt"应该工作。
答案 2 :(得分:8)
myDate = myDate.AddSeconds(-myDate.Second)
答案 3 :(得分:4)
您可以尝试以下方法:
// 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"));