如何从日期时间C#获得时间

125 c# time datetime

假设我的值为6/22/2009 10:00:00 AM.我如何从这个日期时间到10:00 Am.

The*_*des 177

你有很多选择:

DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM");

dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits
dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits
dt.ToString("H:mm"); // 7:00 // 24 hour clock
dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock
Run Code Online (Sandbox Code Playgroud)

有用的链接: DateTime.ToString()模式

  • @MetroSmurf - OP当然不清楚他想做什么.我的一个宠物讨厌是提早到弦.我有一位同事将一切都变成了弦乐 - 甚至是双打等等.这是一个等待发生的事故.我想说,在你想要将对象显示给人类之前,不要将对象转换为字符串.直到那时坚持用品. (14认同)

Mar*_*ell 67

从a DateTime,你可以使用.TimeOfDay- 但这可以让你TimeSpan代表一天中的时间(10小时).


pan*_*wel 54

C#中只有DateTime类型,它包含日期和时间部分.如果您不关心DateTime的Date部分,请将其设置为默认值,如下所示:

DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)
Run Code Online (Sandbox Code Playgroud)

这样,即使Microsoft决定将基准日期更改为1/1/0001以外的其他版本,您也可以在所有版本的.NET中保持一致.

  • 这应该是公认的答案.问题是从DateTime中提取时间,而不是将其格式化为字符串. (16认同)

hea*_*vyd 21

您可能希望查看DateTime.ToShortTimeString()方法.

此外,DateTime对象上有许多其他方法和属性可以帮助您以任何您喜欢的方式格式化日期或时间.只需看看文档.


小智 11

试试这个:

TimeSpan TodayTime = DateTime.Now.TimeOfDay;
Run Code Online (Sandbox Code Playgroud)


小智 6

有不同的方法可以做到这一点.您可以使用DateTime.Now.ToLongTimeString()哪个只返回字符串格式的时间.


Chi*_*rag 6

您可以使用以下代码:

DateTime dt = new DateTime(2009, 6, 22, 10, 0, 0);  //Date 6/22/2009 10:00:00 AM
string time = dt.ToString("hh:mm tt");              //Output: 10:00 AM
time = dt.ToString("HH:mm tt");                     //Output: 10:00 AM
dt = new DateTime(2009, 6, 22, 22, 0, 0);           //Date 6/22/2009 10:00:00 PM
time = dt.ToString("hh:mm tt");                     //Output: 10:00 PM
time = dt.ToString("HH:mm tt");                     //Output: 22:00 PM
Run Code Online (Sandbox Code Playgroud)

  • 这增加了4年前已提交的内容! (5认同)

Gör*_*ğlu 6

DateTime now = DateTime.Now;

now.ToLongDateString();    // Wednesday, January 2, 2019
now.ToLongTimeString();    // 2:33:59 PM
now.ToShortDateString();   // 1/2/2019
now.ToShortTimeString();   // 2:16 PM
now.ToString();            // 1/2/2019 2:33:59 PM
Run Code Online (Sandbox Code Playgroud)


Pro*_*ofK 5

这对我有用。当我不得不使用 DateTime.Date 来仅获取日期部分时,我发现了它。

var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM");
var time = wholeDate - wholeDate.Date;
Run Code Online (Sandbox Code Playgroud)


Kis*_*pta 5

你可以简单地写

string time = dateTimeObect.ToString("HH:mm");
Run Code Online (Sandbox Code Playgroud)

  • 这与 4 年前已经提交的内容完全没有任何关系! (5认同)

小智 5

你可以用这个

lblTime.Text = DateTime.Now.TimeOfDay.ToString(); 
Run Code Online (Sandbox Code Playgroud)

它是实时值,以毫秒为单位,并且仅设置为时间。