日期转换是比较常用功能,这里就将一些常用的场景写一些示例,供大家参考。
1、日期转字符串。这里可以参考“日期定式格式化”与“日期自定义格式化”。
2、字符串转日期。如果我们想要把“20220706132536”这样的字符串转换成相应的日期格式,该如何处理呢?
Vb.Net |
|
C# |
|
下面我们介绍一些常规的字符串转日期的示例:
Vb.Net |
'方法一:Convert.ToDateTime,可以解析任意合法的日期格式字符串 Dim dtFormat As New System.Globalization.DateTimeFormatInfo() dtFormat.ShortDatePattern = "yyyy/MM/dd" Dim dt As DateTime= Convert.ToDateTime("2016/10/10", dtFormat) Proj.MsgDebug.Add(dt) '转换结果:2016-10-10 0:00:00 '方法二:DateTime.ParseExact,可以根据日期格式反向解析任意形式的日期 Dim dateString As String="20220706132536" dt=DateTime.ParseExact(dateString, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture) Proj.MsgDebug.Add(dt) '转换结果:2022-07-06 13:25:36 '方法三:Convert.ToDateTime,字符串必须是yyyy-MM-dd hh:mm:ss格式的 Dim strDate As String="2022-07-06 13:25:36" dt= Convert.ToDateTime(strDate) Proj.MsgDebug.Add(dt) '转换结果:2022-07-06 13:25:36 dt= Convert.ToDateTime("2016/10/10") Proj.MsgDebug.Add(dt) '转换结果:2016-10-10 0:00:00 '方法四:CType,可以把标准的日期格式字符串转换成日期 dt=CType(strDate,DateTime) Proj.MsgDebug.Add(dt) '转换结果:2022-07-06 13:25:36 dt=CType("2016/10/10",DateTime) Proj.MsgDebug.Add(dt) '转换结果:2016-10-10 0:00:00 '方法五:CDate函数 dt=CDate(strDate) Proj.MsgDebug.Add(dt) '转换结果:2022-07-06 13:25:36 '方法六:DateTime.TryParse函数 If DateTime.TryParse(strDate,dt) Then Proj.MsgDebug.Add(dt) '转换结果:2022-07-06 13:25:36 End If '方法七:DateTime.Parse函数 Try dt=DateTime.Parse(strDate) Proj.MsgDebug.Add(dt) '转换结果:2022-07-06 13:25:36 Catch ex As Exception Proj.MsgDebug.Add("转换失败") End Try '方法八:Object的扩展方法CType dt=strDate.CType(Of DateTime)() Proj.MsgDebug.Add(dt) '转换结果:2022-07-06 13:25:36 '第二种写法 dt=ObjectExtension.CType(Of DateTime)(strDate) Proj.MsgDebug.Add(dt) '转换结果:2022-07-06 13:25:36 |
C# |
// 方法一:Convert.ToDateTime,可以解析任意合法的日期格式字符串 System.Globalization.DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo(); dtFormat.ShortDatePattern = "yyyy/MM/dd"; DateTime dt = Convert.ToDateTime("2016/10/10", dtFormat); Proj.MsgDebug.Add(dt); // 转换结果:2016-10-10 0:00:00 // 方法二:DateTime.ParseExact,可以根据日期格式反向解析任意形式的日期 string dateString = "20220706132536"; dt = DateTime.ParseExact(dateString, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture); Proj.MsgDebug.Add(dt); // 转换结果:2022-07-06 13:25:36 // 方法三:Convert.ToDateTime,字符串必须是yyyy-MM-dd hh:mm:ss格式的 string strDate = "2022-07-06 13:25:36"; dt = Convert.ToDateTime(strDate); Proj.MsgDebug.Add(dt); // 转换结果:2022-07-06 13:25:36 dt = Convert.ToDateTime("2016/10/10"); Proj.MsgDebug.Add(dt); // 转换结果:2016-10-10 0:00:00 // 方法四:DateTime.TryParse函数 if (DateTime.TryParse(strDate, out dt)) Proj.MsgDebug.Add(dt);// 转换结果:2022-07-06 13:25:36 // 方法五:DateTime.Parse函数 try { dt = DateTime.Parse(strDate); Proj.MsgDebug.Add(dt); // 转换结果:2022-07-06 13:25:36 } catch (Exception ex) { Proj.MsgDebug.Add("转换失败"); } // 方法六:Object的扩展方法CType dt = strDate.CType<DateTime>(); Proj.MsgDebug.Add(dt); // 转换结果:2022-07-06 13:25:36 |
3、其他日期之间的相互转换,可以参考“日期扩展”。