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

时间:2009-06-22 12:09:42

标签: c# datetime time

假设我的值为6/22/2009 10:00:00 AM。我如何才能从这个日期时间上午10点开始。

17 个答案:

答案 0 :(得分:165)

你有很多选择:

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.ToString() Patterns

答案 1 :(得分:64)

DateTime,您可以使用.TimeOfDay - 但这会为您提供TimeSpan代表当天的时间(10小时)。

答案 2 :(得分:47)

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

DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)

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

答案 3 :(得分:21)

您可能需要查看DateTime.ToShortTimeString()方法。

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

答案 4 :(得分:11)

试试这个:

{{1}}

答案 5 :(得分:6)

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

答案 6 :(得分: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

答案 7 :(得分:4)

你可以简单地写

string time = dateTimeObect.ToString("HH:mm");

答案 8 :(得分:3)

您可以长时间使用ToString("T")或短时间使用ToString("t")

答案 9 :(得分:3)

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

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

答案 10 :(得分:3)

您可以使用此

lblTime.Text = DateTime.Now.TimeOfDay.ToString(); 

它是实时的,具有毫秒值,并且仅设置为时间。

答案 11 :(得分:3)

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

答案 12 :(得分:2)

如果您使用的是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}"/>

答案 13 :(得分:1)

如果您想要比较时间而不是日期,您可以只有一个标准的比较日期,或者与您使用的日期相匹配,如...

DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);

可能有更好的方法,但保持您的日期匹配。

答案 14 :(得分:0)

您还需要考虑DateTime种类。

public static DateTime GetTime(this DateTime d)
{
    return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}

答案 15 :(得分:0)

就我而言,这很好用

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

答案 16 :(得分:0)

简单

DateTime dt = DateTime.Now;

string Timeonly = dt.ToLongTimeString();

问候