【发布时间】:2019-03-06 14:54:44
【问题描述】:
我想让用户选择显示计时器的格式。用户可以选择的时间格式:
mm\:ss
mm\:ss\.f
mm\:ss\.ff
hh\:mm\:ss
hh\:mm\:ss\.f
hh\:mm\:ss\.ff
然后在代码中我有一个转换为字符串的时间跨度,例如:
Return timespan.ToString(TimeFormat)
问题是,如果用户使用 mm:ss 格式,则会显示分钟,当它经过 59 分钟时,它会再次从零开始。我想要的是显示总分钟数。所以60分43秒
我已阅读整个 MS 文档,但找不到解决方案。 https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings
【问题讨论】:
-
不幸的是,使用标准的
.ToString()格式化程序是不可能的。我可以建议检查一下:stackoverflow.com/questions/6074363/… -
如果是120分钟呢?您的格式显示两个字符几分钟?
-
您应该创建自己的函数(如果您不在其他任何地方使用它,可能会覆盖 ToString)。在该函数中,您可以检查输入,并为以 mm 开头的人声明您自己的处理。
-
创建自己的 ToString 不会占用大量 CPU 时间吗?您必须每次检查是否有一个小时,如果有,请更改格式类型。仅供参考:格式连接到由 DispatcherTimer 以 60hz 刷新的计时器
标签: c# wpf vb.net datetime string-formatting