将12小时时间格式转换为24小时整数?

CJ7*_*CJ7 3 .net c# vb.net string parsing

在我的应用程序中,我有一个下拉框的字符串,显示12小时内可供用户选择的小时数.可能的值是:

9am
10am
11am
12pm
1pm
2pm
3pm
4pm
5pm
Run Code Online (Sandbox Code Playgroud)

什么代码会将其中一个字符串转换为24小时整数?例如,10am应该转换为10并且4pm应该转换为16.

RJ *_*han 11

您可以使用DateTime.Parse(...)来获取DateTime值,然后引用该.Hour属性以获得结果;

int h = DateTime.Parse("10am").Hour;   // == 10
int h2 = DateTime.Parse("10pm").Hour;  // == 22
Run Code Online (Sandbox Code Playgroud)

DateTime.Parse在它允许的内容中相当自由,但显然在内部做出了一些假设.例如,在上面的代码中,DateTime.Parse("10am")在当前时区的当前日期返回上午10点(我认为......).因此,请注意使用API​​的上下文.