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;

現在、null 時間を現地時間に変換しているだけです。

于 2012-04-12T01:38:01.950 に答える
2

日付が に設定されているという事実を参照していると仮定すると、表示されてdefault(DateTime)いる形式が気に入らない場合は、yamen の答えが必要です。標準の DateTime 形式の文字列DateTimeを使用する別のプロパティを Student に追加します。

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 に答える