C# 如何仅从日期时间C获取时间#
假设我的值为2009年6月22日上午10:00:00。如何从这个日期时间开始只得到上午10:00。从C# 如何仅从日期时间C获取时间#,c#,datetime,time,C#,Datetime,Time,假设我的值为2009年6月22日上午10:00:00。如何从这个日期时间开始只得到上午10:00。从日期时间开始,您可以使用.TimeOfDay——但这会给您一个时间跨度,表示一天中的时间(10小时)。您可能需要研究该方法 此外,对象上还有许多其他方法和属性可以帮助您以任何方式格式化日期或时间。请看一下文档。如果您想比较时间,而不是日期,您可以选择一个标准的比较日期,或者与您使用的日期相匹配,如 DateTime time = DateTime.Parse("6/22/2009 10:00AM"
日期时间开始,您可以使用.TimeOfDay
——但这会给您一个时间跨度
,表示一天中的时间(10小时)。您可能需要研究该方法
此外,对象上还有许多其他方法和属性可以帮助您以任何方式格式化日期或时间。请看一下文档。如果您想比较时间,而不是日期,您可以选择一个标准的比较日期,或者与您使用的日期相匹配,如
DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);
也许有更好的方法来实现这一点,但要让你的日期保持一致。你有很多选择:
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
有用链接:
有不同的方法可以做到这一点。您可以使用DateTime.Now.ToLongTimeString()
仅返回字符串格式的时间。这对我很有用。当我不得不使用DateTime.Date来只获取日期部分时,我发现了它
var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM");
var time = wholeDate - wholeDate.Date;
您可以长时间使用ToString(“T”)
,或短时间使用ToString(“T”)
。C中只有DateTime类型,它由日期和时间部分组成。如果不关心DateTime的日期部分,请将其设置为默认值,如下所示:
DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)
这样,即使Microsoft决定将基准日期更改为1/1/0001以外的日期,您也可以在.NET的所有版本中保持一致 你可以简单地写
string time = dateTimeObect.ToString("HH:mm");
试试这个:
TimeSpan TodayTime = DateTime.Now.TimeOfDay;
如果您使用的是gridview,则只能使用DataFormatString=“{0:t}”
例如:
By bind the value:-
<asp:Label ID="lblreg" runat="server" Text='<%#Eval("Registration_Time ", "{0:t}") %>'></asp:Label>
By bound filed:-
<asp:BoundField DataField=" Registration_Time" HeaderText="Brithday" SortExpression=" Registration Time " DataFormatString="{0:t}"/>
通过绑定值:-
经装订的文件:-
您可以使用此
lblTime.Text = DateTime.Now.TimeOfDay.ToString();
它是实时的,具有毫秒值,并设置为仅时间。您还需要考虑日期时间类型
public static DateTime GetTime(this DateTime d)
{
return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}
这是一个字符串还是一个日期时间?或者在ToString(“格式代码”)上使用格式的特殊情况下,您可能指的是DateTime.ToLongTimeString()
,而不是DateTime.Now.ToLongTimeString()
。考虑到这条线索的年代,最好不要重提它,除非回复比以前的答案有显著的改进。这绝对不会给4年前已经提交的内容增加任何内容@MetroSmurf-当然,OP不清楚他想做什么。我最讨厌的事之一就是早早去玩弦乐。我有一个同事,他把所有的东西都变成了弦乐,甚至双打等等。这是一个即将发生的意外。我想说的是,除非你想把对象显示给人,否则不要把对象转换成字符串。在此之前,请坚持使用对象。为了快速参考,ss
是带前导零的秒,s
是没有最佳答案的秒,因此这应该是可接受的答案。问题是从DateTime中提取时间,而不是将其格式化为字符串。具体来说,它是“在.NET中”而不是“在C#”中。我使用DateTime.Now.Date.Add(myDateTime.TimeOfDay)
来获取今天的指定时间。+1这是最干净的解决方案,如果您在要求时间输出本地化的国际环境中运行,因为它以当前系统设置的任何格式返回时间。回答这个问题毫无意义,它是9年前提出的。这个问题已经有很多很好的答案了。你没有返回时间。你应该复习功课answer@YepeekaiNET中没有时间类。因此,可以选择不包含日期部分的DateTime实例。也可以返回字符串,但可以在日期时间操作中使用该字符串。我想你可以考虑一个时间段。IMO“新的DATETIME(D.TimeFay.Times)”是最干净的答案,所以FARTMEOTFAY是一个好方法,但是它也带来了MiSimeDS的一部分,你需要用标准类型来格式化你的时间。
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