c# – AM / PM到TimeSpan

我想要实现 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,但我有偏见:)

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...