1

当我使用 system.datetime 作为我的数据成员时,它会在我的 datagridview 中返回一种奇怪的格式。

我的数据成员看起来像这样:

    [DataMember(Name = "TimeAdded")]
    public DateTime TimeAdded;

我的 AddStudent 看起来像这样:

    public void AddStudent(Student student)
    {
        student.StudentID = (++eCount).ToString();
        student.TimeAdded = DateTime.Now; // not important more so the method to get the correct format
        students.Add(student);
    }

我得到的输出2012-04-12T03:10:42.8138255+01:00是有办法解决这个问题吗?

4

4 回答 4

3

我想你想要:

student.TimeAdded = DateTime.Now;

现在,您只是将空时间转换为本地时间。

于 2012-04-12T01:38:01.950 回答
2

假设您指的是日期设置为 的事实default(DateTime),那么您需要 yamen 的答案,如果您不喜欢DateTime显示的格式,则将另一个属性添加到 Student 上,该属性使用像这样的标准 DateTime 格式字符串

public class Student
{
   // existing date, don't expose this
   public DateTime TimeAdded;

   // expose this instead
   [DataMember(Name = "TimeAddedString")]
   public string TimeAddedString 
   {
      //show as "Monday, January 01, 0001 12:00 AM"
      get { return this.TimeAdded.ToString("f"); }
   }
}
于 2012-04-12T01:41:36.663 回答
1
public class Student
{
   public string TimeAddedString
   {
      get 
      { 
          return this.TimeAdded.ToString("dd/MM/yyyy hh:mm:ss"); 
          // your desired format can goes here
      } 
   }
}
public void AddStudent(Student student)
{
    student.StudentID = (++eCount).ToString();
    student.TimeAdded = DateTime.Now; // or your desired datetime
    students.Add(student);
}
于 2012-04-12T01:37:51.483 回答
0

如果您要转换添加的传入学生时间,则需要重新分配它:

public void AddStudent(Student student)
{
        student.StudentID = (++eCount).ToString();
        student.TimeAdded = student.TimeAdded.ToLocalTime();
        students.Add(student);
}
于 2012-04-12T02:05:34.290 回答