รับวันที่หรือเวลาจากวัตถุ DateTime เท่านั้น


คำตอบ:


135
var day = value.Date; // a DateTime that will just be whole days
var time = value.TimeOfDay; // a TimeSpan that is the duration into the day

1
ไม่คิดว่าจะชัดเจนขนาดนี้! :)
gideon

value.Date + ""ส่งคืนไฟล์date 12:00:00 AM. ใช้value.Date.ToShortDateString()เพื่อหลีกเลี่ยงสิ่งนี้
หยุด

41

คุณยังสามารถใช้DateTime.Now.ToString("yyyy-MM-dd")สำหรับวันที่และDateTime.Now.ToString("hh:mm:ss")เวลา


1
โทร. นั่นคือสิ่งที่ฉันได้รับจากการตอบอย่างเร่งรีบ Marc Gravell ตอกมัน
Joshua Smith

5
ฉันบอกว่าคุณกำลังมองหาสตริงบ่อยพอที่คำตอบนี้มีค่า
GWLlosa

23

คุณสามารถใช้Instance ToShortDateString ()สำหรับวันที่
และInstance ToShortTimeString () สำหรับเวลาในการรับวันที่และเวลาจากอินสแตนซ์เดียวกัน



-2

บางครั้งคุณต้องการให้ GridView ของคุณเรียบง่ายเหมือน:

  <asp:GridView ID="grid" runat="server" />

คุณไม่ต้องการระบุ BoundField ใด ๆ คุณเพียงแค่ต้องการผูกกริดของคุณกับ DataReader รหัสต่อไปนี้ช่วยฉันในการจัดรูปแบบ DateTime ในสถานการณ์นี้

protected void Page_Load(object sender, EventArgs e)
{
  grid.RowDataBound += grid_RowDataBound;
  // Your DB access code here...
  // grid.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  // grid.DataBind();
}

void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType != DataControlRowType.DataRow)
    return;
  var dt = (e.Row.DataItem as DbDataRecord).GetDateTime(4);
  e.Row.Cells[4].Text = dt.ToString("dd.MM.yyyy");
}

ผลลัพธ์ที่แสดงที่นี่ การจัดรูปแบบวันที่และเวลา


4
คุณมีทักษะบางอย่างที่ไม่ดี
Ruchan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.