Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何解析到DateTime的字符串输入?

如何解析到DateTime的字符串输入?
EN

Stack Overflow用户
提问于 2014-10-09 09:57:31
回答 4查看 3K关注 0票数 0

我已经知道了如何将输入字符串解析为日期时间对象。

但是,如果我输入字符串并运行启动计时器的方法,然后停止它,我将无法在不获得格式异常的情况下重新编辑字符串输入。

在测试中,我输入:"00 : 00 : 10 : 000",然后启动我的计时器和秒表,但是当我调用stop时,尝试为字符串输入一个新的值,例如"00 : 00 : 22 : 000",它给了我以下例外:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
An exception of type 'System.FormatException' occurred in mscorlib.ni.dll but was not handled in user code

Additional information: String was not recognized as a valid DateTime.

以下是将字符串解析到日期时间的方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            //Assign text box string value to a date time variable.
            DateTime workDt = DateTime.ParseExact(wrkString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);
            DateTime restDt = DateTime.ParseExact(rstString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);

在代码中是否有处理这种类型的输入异常的方法,或者在解析字符串时可能遗漏了一个额外的步骤?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-09 10:11:27

{这是评论,不是答复,但我需要正确地格式化它。}

一定还有一些其他的信息导致了你没有提供的问题。这对我来说很管用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string s= "00 : 00 : 10 : 000";
DateTime workDt = DateTime.ParseExact(s, "HH : mm : ss : fff", CultureInfo.InvariantCulture);
s= "00 : 00 : 22 : 000";
DateTime restDt = DateTime.ParseExact(s, "HH : mm : ss : fff", CultureInfo.InvariantCulture);

但是,由于您只处理时间数据,所以最好使用TimeSpan

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string s= "00 : 00 : 10 : 000";
TimeSpan workTm = TimeSpan.ParseExact(s, @"hh\ \:\ mm\ \:\ ss\ \:\ fff", CultureInfo.InvariantCulture);
s= "00 : 00 : 22 : 000";
TimeSpan restTm = TimeSpan.ParseExact(s, @"hh\ \:\ mm\ \:\ ss\ \:\ fff", CultureInfo.InvariantCulture);

注意,在使用TimeSpan.Parse时,需要将冒号和空格转义。

票数 2
EN

Stack Overflow用户

发布于 2014-10-09 10:01:13

尝试转换类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myDateAsString="3/29/2014";
try
{
Convert.ToDate(myDateAsString)
}
catch(Format exception)
{
//do something
}

这是另一种方法,我同意这一点,但我认为这更容易,我希望它能有所帮助:)

票数 1
EN

Stack Overflow用户

发布于 2014-10-09 10:05:07

如果您知道某些事情可能出错,我建议您使用TryParseExact方法。

我还建议在使用时间间隔时使用TimeSpan而不是DateTime。无论如何,这种方法也存在于DateTime.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TimeSpan ts;
if (TimeSpan.TryParseExact(wrkString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture, out ts))
{
   //ts formatted successfully
}
else
{
    //failure
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26284987

复制
相关文章
Spring中的AOP——在Advice方法中获取目标方法的参数
访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点。JoinPoint里包含了如下几个常用的方法:
林老师带你学编程
2019/05/25
6.2K0
Kotlin在协程中使用Select表达式选择最快结果
Kotlin在1.6时增加了Select的表达式,可以同时等待多个挂起函数,并选择第一个可用的。其实就是说在并行的运算中,直接返回最快的结果。
Vaccae
2022/12/29
6480
Kotlin在协程中使用Select表达式选择最快结果
Java中判断平年闰年最快方法
使用isLeap ,如果为true,那么是闰年,否则为平年 . isLeap需要Year来使用 import java.time.Year; public class Test { public static void main(String[] args) { Year year = Year.of(2000); System.out.println(year.isLeap()); } }
CaesarChang张旭
2021/03/07
1K0
最快速获取全国及全球省市区信息的方法。
最近需要做一个省市区选择的功能,突然想起之前在哪里看见过qq这个工具免费给我提供了文件的。可是想不起来在哪里,在网上找了下相关文章,似乎没有合适的,然后凭着记忆力去qq的安装路径下找了下,终于找到了。
易兒善
2018/08/21
1.2K0
最快速获取全国及全球省市区信息的方法。
在机器学习中处理大量数据!
知乎 | https://zhuanlan.zhihu.com/p/357361005
Datawhale
2021/03/26
2.3K0
在机器学习中处理大量数据!
getBoundingClientRect方法获取元素在页面中的相对位置
获取元素位置可以用 offset 或 getBoundingClientRect,使用 offset 因为兼容性不好,比较麻烦,offset获取位置会形成“回溯”。而 getBoundingClientRect 方法则 兼容性较好,基本所有的浏览器都支持了,且使用起来更容易和简单。
用户6167509
2019/09/04
3.9K0
mysql 获取分组中最新记录SQL写法示例 select group by order by
and it is producing the correct results however they are not in the correct order.
一个会写诗的程序员
2020/05/18
2.6K0
BeautifulSoup解析库select方法实例——获取企业信息
本文内容由浙江浦江中学方春林老师提供。 Requests 是用Python语言编写,基于urllib,采用Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以
Python小屋屋主
2018/04/16
8670
BeautifulSoup解析库select方法实例——获取企业信息
最快的 Hexo 博客搭建方法
使用 Cloud Studio ,就不需要再折腾 Hexo 环境,不需要再解决不同平台上的各种冲突,直接在 Cloud Studio 里面即可进行 Hexo 的写作和部署。
腾讯云 CODING
2019/09/16
1.2K0
最快的 Hexo 博客搭建方法
记录GOPATH在GOLAND中的坑
这里的GOPATH已经出错了,所以编译找不到,我检查了go env也是正确的GOPATH....
超蛋lhy
2018/08/31
1.8K0
记录GOPATH在GOLAND中的坑
[cloc]在Windows中配置cloc的记录
https://github.com/AlDanial/cloc/releases
逝水经年
2022/03/14
2.9K0
js:如何获取select选中的值
<select id=”select”> <option value=”A” url=”http://www.baidu.com”>第一个option</option> <option value=”B” url=”http://www.qq.com”>第二个option</option> </select> 一:JavaScript原生的方法
全栈程序员站长
2022/11/04
26.8K0
最快的 Hexo 博客搭建方法
使用 Cloud Studio ,就不需要再折腾 Hexo 环境,不需要再解决不同平台上的各种冲突,直接在 Cloud Studio 里面即可进行 Hexo 的写作和部署。
全栈程序员站长
2022/06/29
7880
最快的 Hexo 博客搭建方法
vue中同时获取select下拉框的值和文本
在下是首席架构师
2023/07/04
1.9K0
vue中同时获取select下拉框的值和文本
antd的select 的key 和value获取
*默认情况下 onChange 里只能拿到 value,如果需要拿到选中的节点文本 label,可以使用 labelInValue 属性。 选中项的 label 会被包装到 value 中传递给 onChange 等函数,此时 value 是一个对象
用户4344670
2020/02/13
10.3K0
antd的select 的key 和value获取
Hive中SELECT TOP N的方法(order by与sort by)
版权声明:本文为博主-姜兴琪原创文章,未经博主允许不得转载。 https://blog.csdn.net/jxq0816/article/details/87784068
week
2019/03/14
3.9K0
OrientDB显示记录SELECT命令的基本语法
在检索记录时,我们有不同的查询变体或选项以及select语句,以下语句是SELECT命令的基本语法。
用户4988376
2021/08/13
1.2K0
laravel-admin select、multipleSelect从api中获取选项列表
select、multipleSelect从api中获取选项列表 $form->select($column[, $label])->options([1 => 'foo', 2 => 'bar', 'val' => 'Option name']); 或者从api中获取选项列表: $form->select($column[, $label])->options('/api/users'); 其中api接口的格式必须为下面格式: [ { "id": 9, "tex
友儿
2022/09/11
3.8K0
vue中获取外网IP的方法
之前有篇文章js获取客户端真实IP记录了如何获取外网IP 那个只是在普通html页面当中的获取方法,在vue项目中就不能这么使用了。
薛定喵君
2020/08/12
6.3K2
点击加载更多

相似问题

在SQL中向表中插入大量记录的最快方法

71

在mysql中获取记录数的最快方法

32

使用MySQL在JDBC中运行大量SELECT查询的最快方法是什么?

137

这是在MySQL中获取记录的最快方法吗

32

使用ActiveRecords和Rails获取大量记录的最快方法(find_each很慢)

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文