【问题标题】:how to get AM/PM from datetime? c#如何从日期时间获取 AM/PM? C#
【发布时间】:2013-12-10 05:00:49
【问题描述】:

我有这样的约会:

equipBooking.BookedFromDteTme.Date = `{12/5/2013 12:00:00 AM}`

我想申请这样的时间,但我不知道如何从最后得到上午和下午。

dtStartTimeHour.SelectedItem = equipBooking.BookedFromDteTme.TimeOfDay.Hours;
dtStartTimeMin.SelectedItem = equipBooking.BookedFromDteTme.TimeOfDay.Minutes;
**dtStartTimeAMPM.SelectedItem = equipBooking.BookedFromDteTme.???????.;**

请帮帮我。

我尝试过这样的事情:

var startDatestr = equipBooking.BookedFromDteTme.TimeFrom.Split(new string[] { ":", ":",":",":" }, StringSplitOptions.RemoveEmptyEntries);

AM/PM = startDatestr[3]

【问题讨论】:

标签: c# asp.net


【解决方案1】:

如果你只想要字符串,你可以这样做:

equipBooking.BookedFromDteTme.ToString("tt");

或者对于布尔结果使用:

bool isPM = (equipBooking.BookedFromDteTme.Hour >= 12);

顺便说一句,您不需要调用TimeOfDay - 您可以直接从DateTime 获取HourMinute 属性:

dtStartTimeHour.SelectedItem = equipBooking.BookedFromDteTme.Hour;
dtStartTimeMin.SelectedItem = equipBooking.BookedFromDteTme.Minute;
dtStartTimeAMPM.SelectedItem = equipBooking.BookedFromDteTme.ToString("tt");

【讨论】:

  • @vb1 - 1) 不会,2) 为什么会有问题?
【解决方案2】:

TimeSpan 不存储时间,而是存储任何时间间隔的长度。它没有 AM/PM 的概念。

TimeOfDay 返回自午夜以来的时间量。

如果Hours 大于或等于 12,则为 PM。

【讨论】:

    【解决方案3】:

    尝试使用dateTime.ToString("tt");

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 2022-01-19
      • 2022-07-18
      • 1970-01-01
      相关资源
      最近更新 更多