我正在尝试解决 C# 中 HackerRank 的 Time Conversion problem。基本上,您会收到一个 AM/PM 格式的字符串,您需要将其转换为军用时间(24 小时时间格式)。
样本输入为:07:05:45PM 预期输出为:19:05:45
我尝试了“DateTime.Parse(timeString)”,this thread 中提出的解决方案,但它给了我错误的答案(我得到 07:05:45 作为输出,它只删除了 AM/PM) :
DateTime dt = DateTime.Parse("01:00 PM");
dt.ToString("HH:mm");
我在 DateTime library 中搜索了更多,也尝试了 DateTime.TryParseExact(),但得到了相同的结果:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Globalization;
class Solution {
static string timeConversion(string inputTimeString)
{
DateTime outputTime;
bool res = DateTime.TryParseExact(
inputTimeString,
"hh:mm:sstt",
System.Globalization.CultureInfo.InvariantCulture,
DateTimeStyles.None,
out outputTime);
//Console.WriteLine("res: " + res);
return outputTime.ToString("hh:mm:ss");
}
static void Main(string[] args)
{
TextWriter tw = new StreamWriter(@System.Environment.GetEnvironmentVariable("OUTPUT_PATH"), true);
string s = Console.ReadLine();
string result = timeConversion(s);
tw.WriteLine(result);
tw.Flush();
tw.Close();
}
}
答案 0 :(得分:0)
来自specs:
"hh" The hour, using a 12-hour clock from 01 to 12.
"HH" The hour, using a 24-hour clock from 00 to 23.
所以用 HH。