.Net DataTable日期问题

时间:2011-07-03 06:51:04

标签: .net datetime datatable format

我正在开发一个项目,我没有任何数据库。我正在使用ADO.Net的数据集然后存储我的数据我写了xml文件并读取xml文件并再次加载数据集。 xml文件是项目文件,我必须将此文件从系统移动到系统。

在此数据集中,还有一列DateTime。

我想以特定格式(dd / MM / yyyy)在字段中存储日期。

目前,我的问题是,它检测系统的日期格式并读取日期。但系统的日期格式可能因系统而异。有些人使用MM / dd / yyyy,有些人使用dd / MM / yyyy。因此,当格式更改时,它会抛出异常。他们的解决方案是什么?

我可以强制数据表的DataTime字段以我的自定义格式接受日期吗?

提前致谢。

4 个答案:

答案 0 :(得分:0)

你试过这个: http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx

您可以在第二个参数中指定数据的格式。

使用String.format方法编写日期时也可以格式化日期。

答案 1 :(得分:0)

DateTime对象只将日期存储为属性,或月,年,日等的一系列属性。但您可以格式化日期字符串,如下所示:

     string formatted = String.Format("{0:yyyy/MM/dd HH:mm}", datetime);

或者如果你得到系统日期,我相信它会像这样工作:

     string formatted = String.Format("{0:yyyy/MM/dd HH:mm}", DateTime.Now);

或者,如果您正在将字符串读入DateTime对象,则必须进行一些解析:

     string date = "2011/5/20"
     string dateparts = date.Split('/'); 
     string year = dateparts[0];
     string month = dateparts[1]; 
     string day = dateparts[2]; 

     DateTime dt = new DateTime(year, month, day, 0, 0, 0); 

但DateTime对象可以从日期的各种字符串表示初始化,通常你不需要解析。取决于你的情况,

答案 2 :(得分:0)

过去,我在序列化日期时间方面遇到过类似的问题。

我建议您删除日期时间字段并改用字符串。这样,您就可以完全控制将日期时间对象输入DataSet的格式。

一旦您以字符串形式输入,您需要记录日期时间记录的文化格式和格式。您可以在软件中硬编码这两个值,并希望它们不会更改(不理想) 。将它们删除到.config文件(更好)。

您可以将这些附加字段添加到数据集中。

MyDateField   - DateTime as a string
Format.       - "dd/MM/yyyy HH:mm:ss" (for example)
Culture       - "EN-US" 

因此,当您从DataSet中读取日期以实例化DateTime对象时,请使用。

var dateTime = DateTime.ParseExact([mydatefield], [format], new cultureInfo([culture]));

*请注意,[]内的字段是从数据集中的行检索的值。

这样,您可以在任何计算机上使用此日期时间字段,因为您在数据集中指定要使用的文化和格式提供程序。

您需要在数据集中实现日期时间字段的任何位置重构,以使用这些日期时间提供程序和文化信息。

就个人而言,我会从.config文件中读取格式和文化信息,因为这些信息不太可能在数据集中逐行更改。

答案 3 :(得分:0)

只是将日期时间序列化/反序列化为特定格式的简单示例

        DateTime s = DateTime.Now;
        MessageBox.Show(s.ToString("yyddMM"));
        MessageBox.Show(s.ToShortDateString());
        DateTime s2 = DateTime.ParseExact("110307", "yyddMM", CultureInfo.InvariantCulture);
        MessageBox.Show(s2.ToShortDateString());

我完全赞同贾斯汀在这里..只要您将日期存储在文本文件中,只需使用字符串字段