Man*_*der 1 c# asp.net string datetime
我有一个接受格式的DataTime字符串的文本框:MM/dd/yyyy hh:mm:ss.例如 :
假设我选择了一个日期时间: "12/26/2013 17:37:03"
我试图使用以下方法获取Datetime对象:
DateTime.TryParseExact(strDate, "MM/dd/yyyy hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None,out date);
Run Code Online (Sandbox Code Playgroud)
但每次它将字符串解析为:{ 1/1/0001 12:00:00 AM}
请有人在这里纠正我.
hh是01到12.
使用HH而不是这是00对23.
例如;
string s = "12/26/2013 17:37:03";
DateTime dt = DateTime.Now;
bool success = DateTime.TryParseExact(s, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);
Console.WriteLine("Is Parsing Successful? {0}", success);
Console.WriteLine(dt);
Run Code Online (Sandbox Code Playgroud)
输出将是;
Is Parsing Successful? True
12/26/2013 5:37:03 PM
Run Code Online (Sandbox Code Playgroud)
这里一个demonstration.
但即使你解析,为什么你仍然得到一个DateTime值?
如果s中存在日期,时间和时区元素,则它们也必须按格式指定的顺序出现.如果format定义了一个没有time元素的日期并且解析操作成功,则生成的DateTime值的时间为午夜(00:00:00).
注意:请阅读ken2k的评论:1和2.当您date使用默认值定义时DateTime date; 您无法知道转换是否成功,因为这两者都会生成DateTime(1/1/0001 12:00:00 AM)的默认值
DateTime date 把日期作为 1/1/0001 12:00:00 AMdate也会1/1/0001 12:00:00 AM这就是为什么,我在我的代码中更改它DateTime dt = DateTime.Now;,您可以检查您的转换是否成功.如果成功,您的date意愿将是12/26/2013 17:37:03,如果不成功,您的日期将是1/1/0001 12:00:00 AM