可以使用 DateFormat 添加单词 "minutes" 或 "seconds" 吗?

Possible to Add words "minutes" or "seconds" with DateFormat?

我有这样的东西

   var diff = endDate.Value.Subtract(DateTime.UtcNow); // gives a timespan
   var msg = diff.ToString("locked out for another mm minutes and ss seconds");

希望它能够解析出 mmss 并将其替换为正确的值,但我遇到了异常。

编辑

我想我可以这样做

"Locked out for another {diff.Minutes} minutes and {diff.Seconds} seconds"

但仍然好奇是否可以在 toString()

中全部完成

你可以这样做

diff.ToString("'Locked out for another 'mm' minutes and 'ss' seconds'")

有关详细信息,请参阅 docs

TimeSpan 的 ToString 方法可以采用格式字符串,但它需要特殊格式。

var diff = endDate.Value.Subtract(DateTime.UtcNow);
// If our TimeSpan value is 1h, 2m, 3s, this would print 1:2:3
var msg = diff.ToString(@"hh\:mm\:ss")

要打印您正在寻找的消息,我会使用常规字符串格式。

var msg = String.Format("locked out for another {0:%m} minutes and {0:%s} seconds", diff)

在这个例子中,{0:%m} 表示我想要格式参数 0 的 %m 值,或者格式字符串之后的第一个参数。 {0:%s} 说我想要参数 0 的 %s 值。可以在此处找到 TimeSpan 的格式值。

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-timespan-format-strings