A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Max_骏 中级黑马   /  2014-3-13 10:33  /  953 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Max_骏 于 2014-3-20 15:08 编辑

201403092359怎么转成datetime格式,求解,已用convert和DateTime.ParseExact()不可实现.....

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 百川 于 2014-3-13 12:28 编辑
  1. Console.WriteLine("请输入时间,格式为xxxxaabbccddee");
  2.             string str=Console.ReadLine();
  3.             try
  4.             {
  5.                 string year = str.Substring(0, 4);
  6.                 string month = str.Substring(4, 2);
  7.                 string day = str.Substring(6, 2);
  8.                 string hour = str.Substring(8, 2);
  9.                 string minute = str.Substring(10, 2);
  10.                 string second = str.Substring(12, 2);
  11.                 string time = (year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
  12.                 DateTime datetime = DateTime.Parse(time);
  13.                 Console.WriteLine(datetime);
  14.             }
  15.             catch
  16.             {
  17.                 Console.WriteLine("输入日期格式有误。");
  18.             }
  19.             Console.ReadKey();
复制代码
其实没必要这么麻烦,你让用户直接输入“XXXX-aa-bb cc:dd:ee”的格式是可以直接通过DateTime datetime = DateTime.Parse(time);转换的

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
如果已经存在的数据格式不好从源头上限制的话,那可以用正则判断后再转换
  1. static void Main(string[] args)
  2.         {
  3.             string s = "201403092359";
  4.             DateTime? dt = GetDate(s);
  5.             Console.WriteLine(dt.ToString());
  6.             Console.ReadKey();
  7.         }
  8.         /// <summary>
  9.         /// 转换成功则返回日期,失败则返回NULL
  10.         /// </summary>
  11.         /// <param name="s"></param>
  12.         /// <returns></returns>
  13.         private static DateTime? GetDate(string s)
  14.         {
  15.             Regex reg = new Regex(@"^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})$");
  16.             Match m = reg.Match(s);
  17.             try
  18.             {
  19.                 if (m.Success)
  20.                 {
  21.                     return new DateTime(int.Parse(m.Groups[1].Value),
  22.                         int.Parse(m.Groups[2].Value),
  23.                         int.Parse(m.Groups[3].Value),
  24.                         int.Parse(m.Groups[4].Value),
  25.                         int.Parse(m.Groups[5].Value), 0);
  26.                 }
  27.                 return null;
  28.             }
  29.             catch (Exception ex)
  30.             {
  31.                 return null;
  32.             }
  33.         }
复制代码
回复 使用道具 举报
string s = "201403092359";
DateTime t = DateTime.ParseExact(s,"yyyyMMdd",null);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马