【发布时间】:2017-04-20 06:18:57
【问题描述】:
我正在开发一个Console 应用程序,用于将时间从12 小时格式 转换为24 小时格式:
输入:02:03:34PM 预期输出:14:03:34
但我得到 14:3:34 下面是我的代码sn-p:
string[] arr_temp = Console.ReadLine().Split(':');
string time = arr_temp[2].ToUpper().Contains("AM") ? "AM" : "PM";
string sec=string.Empty;
for (int i = 0; i < 2; i++)
{
sec+= arr_temp[2][i];
}
int _hour = Int32.Parse(arr_temp[0])==0?0: Int32.Parse(arr_temp[0]);
int _minute = Int32.Parse(arr_temp[1]) == 0 ? 0 : Int32.Parse(arr_temp[1]);
int _sec = Int32.Parse(sec)==0?0: Int32.Parse(sec);
_hour = (time == "PM") ? _hour += 12 : _hour += 0;
_hour = (_hour < 10) ? '0' + _hour : _hour;
_minute = (_minute < 10) ? '0' + _minute : _minute;
_sec = (_sec < 10) ? '0' + _sec : _sec;
我没有得到预期的输出。 请提出建议。
【问题讨论】:
-
你看过
DateTime.ToString()吗? -
确实...您真的不应该自己进行所有这些格式化或解析。现在也是了解 .NET 命名约定的好时机。
-
...和 DateTime.ParseExact()
-
如何在不使用 DateTime 函数的情况下连接它?
标签: c# .net string datetime console-application