是否可以为NodaTime的LocalTime创建一个匹配ISO 8601 standard for times的模式?也就是说,你可以选择(分钟和)秒,就像你可以选择小数秒吗?我希望能够总是有几小时和几分钟,但只在需要时添加其他所有内容。
答案 0 :(得分:1)
目前在NodaTime中不存在,对于内置的DateTime
和DateTimeOffset
对象,它也不存在an option。
你可以做的最好的事情就是创建两个模式并添加一些可以使用的逻辑。
var p1 = LocalTimePattern.ExtendedIsoPattern;
var p2 = LocalTimePattern.CreateWithInvariantCulture("HH:mm");
// formatting
LocalTime t = // your input
var p = t.Second == 0 && t.TickOfSecond == 0 ? p2 : p1;
string s = t.Format(p);
// parsing
string s = // your input
var result = p1.Parse(s);
if (!result.Success)
result = p2.Parse(s);
if (!result.Success)
// throw some exception, etc.
LocalTime t = result.Value;