我想要实现
this的相反,也就是说,我想将格式为hh:mm tt的字符串转换为零秒的TimeSpan.
例如,09:45 pm转换为21:45:00.
解决方法
最简单的方法可能是使用DateTime.ParseExact将其解析为DateTime,然后使用
TimeOfDay
来确定TimeSpan.
DateTime dateTime = DateTime.ParseExact(text,"hh:mm tt",CultureInfo.InvariantCulture); TimeSpan span = dateTime.TimeOfDay;
当您还指定了一个am / pm指示符时,可能会在几个小时内看到前导0.您可能希望在格式字符串中使用“h”而不是“hh”,以允许“9:45 pm”而不是“09:45 pm”.
(我也认为这是一个奇怪的使用TimeSpan的第一名,但是.NET日期/时间类型在我的看法有点混乱,我建议使用Noda Time,但我有偏见:)