如何转换1400-1500到下午2点 - 下午3点?

w4y*_*ymo 3 vb.net time datetime

我收到的数据表示服务中的时隙作为字符串形式:

1500-1600

这意味着下午3点到4点.

我将列出这些例如

1200-1300

1300-1400

1400-1500

我必须在UI中表示这一点

中午12点至下午1点

下午1点到2点

下午2点 - 下午3点

不幸的是,这个列表可能是随机顺序.

我的问题是有没有办法使用DateTime对象能够将24小时时间转换为12小时时间,还有一种方法可以按顺序排序时间吗?

目前我觉得我将不得不编写一个自定义解析函数,但想知道是否有人知道如何更好地做到这一点?或者可以建议如何实现这一目标.

Jon*_*eet 11

我假设你知道如何将时间分成"1400"和"1500".最简单的方法(IMO)将是使用

DateTime.ParseExact(input, "HHmm", CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

这将返回a DateTime今天的日期和给定的时间.然后,您可以根据需要格式化DateTime.

或者,您可以将"1400"解析为整数,然后使用Math.DivRem找到分钟和小时,除以100.我个人更喜欢使用DateTime.