Mendapatkan Tanggal atau Waktu hanya dari Objek DateTime

Jawaban:

134
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
Marc Gravell
sumber
1
Tidak mengira itu begitu jelas! :)
gideon
value.Date + ""mengembalikan date 12:00:00 AM. Gunakan value.Date.ToShortDateString()untuk menghindari ini.
hesed
39

Anda juga dapat menggunakan DateTime.Now.ToString("yyyy-MM-dd")untuk tanggal, dan DateTime.Now.ToString("hh:mm:ss")untuk waktu.

Joshua Smith
sumber
1
Panggilan yang bagus. Itulah yang saya dapatkan karena menjawab dengan tergesa-gesa. Marc Gravell berhasil.
Joshua Smith
5
Saya akan mengatakan bahwa Anda cukup sering mencari string sehingga jawaban ini memiliki nilai.
GWLlosa
22

Anda bisa menggunakan Instance.ToShortDateString () untuk tanggal,
dan Instance.ToShortTimeString () untuk waktu mendapatkan tanggal dan waktu dari instance yang sama.

Shail Nautiyal
sumber
2
var currentDateTime = dateTime.Now();
var date=currentDateTime.Date;
Muhammad Kashif
sumber
4
Anda juga dapat menggunakan yourDateObj.ToShortDateString();
Muhammad Kashif
-2

Terkadang Anda ingin membuat GridView Anda sesederhana:

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

Anda tidak ingin menentukan BoundField apa pun, Anda hanya ingin mengikat grid Anda ke DataReader. Kode berikut membantu saya memformat DateTime dalam situasi ini.

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");
}

Hasilnya ditampilkan di sini. Pemformatan DateTime

Alexander Chernosvitov
sumber
4
Anda memiliki beberapa keterampilan yang sakit bro
Ruchan