由20分加到50分的问题:关于字符串与时间、日期转化的问题
我有一个文本文件,分别有两行表示日期与时间。
又有一个ACESS数据库,分别有两个字段,分别表示日期与时间。
现在有两个字符串:
string strDate= "FRE-02-1999"
string strTime = "21:03:05"
1、现在使用:
DateTime myDate = new DateTime();
DateTime myTime = new DateTime();
myDate = DateTime.Parse(strDate);
myTime = DateTime.Parse(strTime);
以上转化出来的myDate符合要求,而myTime为何得到的是本日的日期?
如何才能把myTime转化为符合要求的时间类型.
2、我使用了班门斧的方法,
即:
strTime = strDate + " " + strTime;
DateTime myTime = new DateTime();
myTime = DateTime.Parse( strTime )
得到的只有日期,即"2/2/1999",时分秒还是不行.
问题点数:50、回复次数:15Top
1 楼TheAres(班门斧)回复于 2003-08-03 00:04:03 得分 30
string strDate= "Feb-02-1999" + " " + "21:03:05";
DateTime myTime = DateTime.Parse( strDate );
MessageBox.Show( myTime.ToString());
你这段程序会显示什么结果?
Top
2 楼panyee(快乐王子)回复于 2003-08-03 00:08:45 得分 0
可以取得时间
string st = myTime.ToString("yyyy-MM-dd HH:mm:ss");
取得的有日期和时分秒Top
3 楼snof(雪狼)回复于 2003-08-03 00:10:22 得分 0
试试如下的:
string m= "Feb-02-1999" + " " + "21:03:05";
DateTime temp =System.Convert.ToDateTime(m);
MessageBox.Show( temp.ToString());Top
4 楼Oldyig(沒有花香)回复于 2003-08-03 00:14:38 得分 0
班兄,您好!
现在显示出来的是正确的,
但由于数据库要求日期与时间分别存放,
所以必须要把这两个字符串分别转化到数据库中进行存放.这个问题如何解决呢?
如何使用字符串存放的话,必须要影响效率.Top
5 楼TheAres(班门斧)回复于 2003-08-03 00:21:40 得分 0
Hoho,我现在知道你的意思了。
根本不需要转换。直接存进去就可以了。
你现在是如何写入数据库的呢?Top
6 楼shixueli(我们总是不能随心所欲)回复于 2003-08-03 00:34:58 得分 0
字符串只要符合要求,比如说这种形式:'4/05/98'
是可以直接插入数据库的,
但是好象sqlserver没有一个数据类型是专门存放年月日或者小时分妙的吧,
都是一块放的,取出来的时候再做分离呗Top
7 楼Oldyig(沒有花香)回复于 2003-08-03 01:26:10 得分 0
我使用的是AOD.NET.再通过XML,建立一个数据集myDataSet.
再实例化一个基于DataRow的myDataRow类,
然后用转化后的myTime和myDate,赋给myRow.time和myRow.date,再追加至数据库。
用dataGride显示数据库表即myDataSet(目前只有一个表)的内容。
Top
8 楼caoit(lost)回复于 2003-08-03 01:30:37 得分 0
study!Top
9 楼Oldyig(沒有花香)回复于 2003-08-03 01:37:24 得分 0
原来文本数据格式为:
FED-02-1999 其它文本 -------我称之为日期行
[02:03:54] 其它文本 -------我称之为数据行
[02:03:56] 其它文件
.........
.........
FED-02-1999 其它文本 -------我称之为日期行
......
.....
FED-03-1999 其它文本 -------我称之为日期行
由于日期行与数据行的内容都不是很规范,所以不能直接导入数据库,而只能编程实现.
再导入数据库后,再进行数据分析.
Top
10 楼shixueli(我们总是不能随心所欲)回复于 2003-08-03 01:49:05 得分 20
02:03:56这种形式不能直接放进access数据库吗?
还有access里面有只存放年月日不放小时分妙的数据类型吗?
-为什么不把他们合并成一个日期型的字段,取出来时再分离?Top
11 楼Oldyig(沒有花香)回复于 2003-08-03 01:58:36 得分 0
成功兄,
我进行了合并,再写入数据库中
程序段如下:
string strDate= "Feb-02-1999" + " " + "21:03:05";
DateTime myTime = DateTime.Parse( strDate );
MYDataSet.RecordsRow myRow =
myDataSet.Records.NewRecordsRow();
myRow.time = myTime;
MyDataSet.Records.AddRecordsRow(myRow);
myOleDbDataAdapter.Update(aleDataSet);
MyOleDbDataAdapter.Fill(aleDataSet);
在DataGride控件的time列中只显示出 2-2-1999
没有时间
Top
12 楼Oldyig(沒有花香)回复于 2003-08-03 02:00:53 得分 0
此外就是先整存进去,使用时再分离会影响效率。因为这有上百万条这样的记录,如果需要搞点分析工作就麻烦了。Top
13 楼shixueli(我们总是不能随心所欲)回复于 2003-08-03 02:39:32 得分 0
我试过:
string strDate= "Feb-02-1999" + " " + "21:03:05";
DateTime myTime = DateTime.Parse( strDate );
Response.Write(myTime.ToString());
结果是1999-2-2 21:03:05但是不知道你的time列声明的时候是什么类型?Top
14 楼Oldyig(沒有花香)回复于 2003-08-03 04:56:49 得分 0
成功兄您说的,我已经试过了,结果和你一样。
但追加到dataset中后,DataGride控件显示却是1999-2-2
在dataset中,time列的类型为dataTime,
在ACCESS数据库中time为长时间类型Top



