创建从字符串DateTime对象

编程入门 行业动态 更新时间:2024-10-26 21:20:02
本文介绍了创建从字符串DateTime对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我目前正在从文本文件中读取数据的分类,并分析了一切。一个被解析出来的物品是一个开始时间,格式的事件:

YYMMDDHHMM 1306050232

然后我分析出以下几点:

字符串一年=20+时间[0]的ToString()+时间[1]的ToString(); 串月=时间[2]的ToString()+时间[3]的ToString(); 串天=时间[4]的ToString()+时间[5]的ToString(); 串小时=时间[6]的ToString()+时间[7]的ToString(); 串分钟=时间[8​​]的ToString()+时间[9]的ToString(); 串AMPM =; INT hourInt = Convert.ToInt32(小时); 如果(hourInt< = 12) {时间=月+。 +日+。 +一年+@+小时+:+分++AM; AMPM =AM; } ,否则 { hourInt = hourInt - 12; 时间=月+。 +日+。 +一年+@+ hourInt.ToString()+:+分++PM; AMPM =PM; }

一旦这些被解析出来,我结合的变量,并试图把它成日期时间。

字符串tempStartTime =年+ - +月+ - +日++小时+:+分钟++ AMPM; 字符串开始时间= DateTime.ParseExact(tempStartTime,YYYY-MM-DD HH:MM TT,NULL);

我的问题是,我得到这样的警告,从尝试捕捉:

System.FormatException:字符串未被识别为有效的DateTime。在System.DateTime.ParseExact(一个String,字符串格式,提供的IFormatProvider)在Project.GUI.parseSchedule(的Int32数)

我不明白为什么,以及如何正确地做到这一点。

我要的是从文件采取的开始时间,将其转换为datetime对象,之后就可以进行操作。

解决方案

为什么不直接跟你开始与格式解析?

VAR DT = DateTime.ParseExact(时间,YYMMDDHHMM,CultureInfo.InvariantCulture);

有没有必要让所有的预处理你正在做的。

$ B的$ b

I currently am reading from a text file an assortment of data, and parsing out everything. One of the items being parsed out is a start time for an event in the format of:

yyMMddHHmm 1306050232

I then parse out to the following:

string year = "20" + time[0].ToString() + time[1].ToString(); string month = time[2].ToString() + time[3].ToString(); string day = time[4].ToString() + time[5].ToString(); string hour = time[6].ToString() + time[7].ToString(); string minute = time[8].ToString() + time[9].ToString(); string ampm =""; int hourInt = Convert.ToInt32(hour); if (hourInt <= 12) { time = month + "." + day + "." + year + "@" + hour + ":" + minute + " " + "AM"; ampm= "AM"; } else { hourInt = hourInt - 12; time = month + "." + day + "." + year + "@" + hourInt.ToString() + ":" + minute + " " + "PM"; ampm= "PM"; }

once these are parsed out, i combined the variables, and try to put it into a DateTime.

string tempStartTime = year + "-" + month + "-" + day + " " + hour + ":" + minute + " " + ampm; string starttime = DateTime.ParseExact(tempStartTime, "yyyy-MM-dd HH:mm tt",null);

my issue is, I get a warning like this from the try catch:

System.FormatException: String was not recognized as a valid DateTime. at System.DateTime.ParseExact(String s, String format, IFormatProvider provider) at Project.GUI.parseSchedule(Int32 count)

I don't understand why, or how to correctly do this.

All I want is to take the start time from the file, convert it to a datetime object, and operate on it afterwards.

解决方案

Why not simply parse with the format you are starting with?

var dt = DateTime.ParseExact(time, "yyMMddHHmm", CultureInfo.InvariantCulture);

There's no need for all of the pre-processing you're doing.

更多推荐

创建从字符串DateTime对象

本文发布于:2023-10-28 02:06:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1535185.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   对象   DateTime

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!