读书人

DateTime 类型变量的实例化有关问题

发布时间: 2013-01-20 10:22:41 作者: rapoo

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)); //毫秒




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


[解决办法]

DateTime dt = DateTime.ParseExact("20130105105745677", "yyyyMMddHHmmssfff", null);
[解决办法]
DateTime 类型也可以实例化?
[解决办法]
LZ想多了,一般都可以想得到的,时间的函数,系统提供的函数肯定处理了的呵呵

读书人网 >C#

热点推荐