c# - 使用 C# 如何将此字符串解析为时间
问题描述
我有一个 C# Visual Studio Web 应用程序,它使用 Telerik RadTimePickers 来收集开始时间和结束时间,格式为 24 小时制。这两个元素作为格式为 09:00:00-09:30:00 的字符串存储在数据库中。
现在,当应用程序从数据库中检索数据时,我需要将该字符串转换为 24 小时格式的 2 个单独时间,以便我可以将这些值用作 RadTimePickers 的选定时间。
我使用下面的代码从字符串中提取两个日期;
if (Results.TimeOfDay != "-" || Results.TimeOfDay != null)
{
string[] times = Results.TimeOfDay.Split('-');
string time1 = times[0];
RadTimePicker1.SelectedTime = ParseTime(time1);
string time2 = times[1];
RadTimePicker2.SelectedTime = ParseTime(time2);
}
ParseTime 的代码如下所示:
static public TimeSpan ParseTime(string input)
{
TimeSpan output;
var ok = TimeSpan.TryParseExact(input, @"hh\:mm\:tt", CultureInfo.InvariantCulture,out output);
return output;
}
但它不起作用,var ok 值返回 false,输出值为 1/1/0001 12:00:00 AM。C# 新手,无法弄清楚如何解决此问题。有人可以帮忙吗
根据评论,我更改了要解析的代码
static public TimeSpan ParseTime(string input)
{
TimeSpan output;
var ok = TimeSpan.TryParseExact(input, @"hh\:mm\:tt", CultureInfo.InvariantCulture,out output);
return output;
}
解决方案
if (Results.TimeOfDay != "-" || Results.TimeOfDay != null)
这始终是正确的,因为您在询问 .TimeOfDay 或“09:00:00-09:30:00”是否不等于“-”。你应该Results.TimeOfDay.Contains("-")
改用。
还,
@"h:mm tt"
这应该是@"hh:mm:tt"
编辑:对不起应该是@"hh\:mm\:ss"
推荐阅读
- javascript - 如何最小化jquery中的输出值
- angular - 在 Angular 8 中谷歌登录后如何重定向到上一页?
- python - 如何在python gremlin中检索顶点的属性值
- neo4j - 如何在 Neo4J 中引用 ID 作为参数
- postgresql - 使用 codeigniter 为 postgresql 连接的数据库,但是变量 db 在博客控制器的插入命令中无法连接
- python - 从 numpy 数组中删除一些值以正确重塑它们?
- javascript - 我可以打破规则并在客户端使用 firebase-admin 吗?还是试图解决错误是徒劳的?
- applescript - 是否有可以练习的苹果脚本在线编辑器?
- jenkins - 有没有办法在 Jenkins 中向 shell 脚本添加自定义命令行链接?
- scala - Scala类型系统,找不到共同的祖先内联