【问题标题】:How to serialise DateTime with seconds displayed as 0?如何序列化 DateTime,秒数显示为 0?
【发布时间】:2014-09-05 21:05:18
【问题描述】:

我有一些日期时间将按以下格式计算: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 时间戳开始。如何简单地将dtDateTime 的seconds 部分设置为00?

NB - 代码简洁很重要。谢谢大家。

【问题讨论】:

标签: c# datetime


【解决方案1】:
myDate = myDate.AddSeconds(-myDate.Second)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • @Habib 如果我们想设置 00 秒到dt 怎么办?此处控制台显示00,但dt 仍保留指定的秒数...
    • @ironzionlion,OP 的代码有 return dtDateTime.ToString... 所以 OP 返回一个格式化的字符串。应该不需要将dt 的秒数设置为零。
    • @Habib 感谢您的评论。我只是想知道是否需要等待定义一个已经具有固定值的DateTime,在这种情况下,ss。有没有办法定义一个保持不变的DateTime 值,即使我尝试dt = dt.AddSeconds(5)?
    • @ironzionlion, DateTime 是不可变的,因此您对对象所做的任何更改都将返回一个新对象。因此,您可以使用 readonly DateTime ,例如:readonly DateTime SomeDate = new DateTime(2014, 01, 01);。它不会是const,但它会给你一些类似的功能
    【解决方案3】:

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

    【讨论】:

      【解决方案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"));
      

      【讨论】:

      • 我喜欢这个解决方案。它直接在声明中设置 seconds 属性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多