21、DateTime.ParseExact使用小记一

博客记录了使用DateTime.ParseExact对string格式时间进行转换的过程。从csv等文件获取的时间常为string类型,需转换为datetime格式。标准时间格式可用DateTime.Parse转换,非标准则用DateTime.ParseExact,还介绍了该函数参数及修改第二参数的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:通过csv、excel或者txt文件获取的时间往往是string类型的,这时候如果需要对其操作就需要将其转换成datetime格式的,这里记录下使用DateTime.ParseExact对string格式的时间进行转换的心路历程

说明:如果是标准时间格式,直接使用DateTime.Parse(string dateTimeStr)即可,如果不是标注格式就需要通过DateTime.ParseExact对string格式的时间进行匹配转换了。

一、需求

可能出现的字符串时间格式:2022/10/19 0:00:03、2022/10/19 00:03、2022-10-19 0:00:03等,使用DateTime.ParseExact进行转换时往往会报错,提示说这种格式不是有效的datetime格式。

string aidunfeng = "2022/10/19 01:00:03";
DateTime dd = DateTime.ParseExact(aidunfeng, "yyyy/Mm/d h:m:s", CultureInfo.InvariantCulture);

DateTime.ParseExact()函数中第一个参数是要转换的时间格式字符串,第二个参数是匹配格式或转换后的样式,第三个参数是获取当前线程的区域信息。

CultureInfo.CurrentCulture获取当前线程的区域信息中,包括DateTimeFormat 日期显示格式(日期分隔符)和 NumberFormat 货币。

二、官网解释

 

时间格式字符串是什么样的,你第二参数就得是什么样的,否者就会出错, 当然有些是可以缩写的,这个下面说。

三、改

改下第二个参数看看可行否,没什么问题,第二个参数灵活性比较大,比如月,可以写一个M,也可以写两个MM,不过,一个M可以代表两位数,例如2022/2/19 01:02:03,也可以表示2022/12/19 01:02:03,如果用两个MM,那1-9月就必须使用01、02这种格式,1、2就会报错,同理日、时、分、秒都一样。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值