我varchar(5)在表格中有一列,其中包含24小时格式时间的小时和分钟.我想将这个24小时格式转换为12小时格式,最后将这个12小时格式时间与Date值一起嵌入到DateTime变量中.以下是演示示例.
例如
8:18应该转换为8:18:00 AM,然后应该嵌入一个日期,如8/10/2012 8:18:50 AM,以便能够存储在DB的DateTime列中.
22:20......10:20:00 PM.......8/10/2012 10:20:00 PM
Run Code Online (Sandbox Code Playgroud)
日期不是当前日期,可以是任何日期值,如8/8/2012或7/8/2012
Joã*_*elo 10
你可以这样做:
string input = "22:45";
var timeFromInput = DateTime.ParseExact(input, "H:m", null, DateTimeStyles.None);
string timeIn12HourFormatForDisplay = timeFromInput.ToString(
"hh:mm:ss tt",
CultureInfo.InvariantCulture);
var timeInTodayDate = DateTime.Today.Add(timeFromInput.TimeOfDay);
Run Code Online (Sandbox Code Playgroud)
现在需要考虑的重要部分:
"H:m"使得它假定24H值不使用零来为小时或分钟的单个数字加前缀;"hh:mm:ss tt"因为它似乎是您想要的格式,但是您需要CultureInfo.InvariantCulture确保您获得的AM/PM指示符实际上是AM或PM.如果您使用其他文化,AM/PM指示符可能会改变;DateTime.Today以零时间返回今天的日期,然后我们只添加从输入中读取的时间.要从另一个日期创建最终日期和时间,您可以改为使用:
var timeInAnotherDate = new DateTime(2000, 1, 1).Add(timeFromInput.TimeOfDay);
Run Code Online (Sandbox Code Playgroud)
参考资料:
| 归档时间: |
|
| 查看次数: |
10576 次 |
| 最近记录: |