日期:2014-05-17  浏览次数:20738 次

DateTime 类型变量的实例化问题
一个时间字符串“20130105105745677”,2013是年,01是月,05是日,10是小时,57是分钟,“45677”是毫秒。
  
             int year = int.Parse(DANo.Substring(0, 4));
               int month = int.Parse(DANo.Substring(4, 2));
               int day = int.Parse(DANo.Substring(6, 2));
               int hour = int.Parse(DANo.Substring(8, 2));
               int minute = int.Parse(DANo.Substring(10, 2));
               int second = int.Parse(DANo.Substring(12, 5));


               DateTime DATime = new DateTime(year, month, day, hour, minute, second);

问题一:这样用“年、月、日、时、分、秒”去实例化DateTime不行啊???   是因为“秒数”是“0~59”的整数,那么毫秒数怎么办???



string  str="20130105105745677"

问题二:怎样将“str”转化为“DateTime”类型???

------解决方案--------------------
public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond);
这不是有带还秒的构造函数吗
------解决方案--------------------
public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond);
那么多重载你看不见吗?
------解决方案--------------------
“45677”是毫秒 有问题,1000毫秒就是一秒了,所以毫秒栏位最大值为999。
------解决方案--------------------
1000毫秒就是一秒了,所以不存在 45677这个毫秒,
DateTime时有很多的重载的,你可以看下
------解决方案--------------------
你45是秒吧,667是毫秒
DateTime.ParseExact("20130105105745677","yyyyMMddHHmmssfff",null)
------解决方案--------------------
问题二,可以直接转,
给你来一个,代码如下:

            string str = "20130105105745677";
            DateTime dt = DateTime.ParseExact(str, "yyyyMMddHHmmssfff", null);
            MessageBox.Show(dt.ToString());
            //输出 2013-1-5 10:57:45


------解决方案--------------------
int year = int.Parse(DANo.Substring(0, 4));
int month = int.Parse(DANo.Substring(4, 2));
int day = int.Parse(DANo.Substring(6, 2));
int hour = int.Parse(DANo.Substring(8, 2));
int minute = int.Parse(DANo.Substring(10, 2));
int second = int.Parse(DANo.Substring(12, 2));
int millisecond = int.Parse(DANo.Substring(14)); //毫秒