在 C# 中将 AM/PM 时间转换为 24 小时格式?

时间:2021-01-05 08:47:31

标签: c# datetime parsing time

我正在尝试解决 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();
    }
}

1 个答案:

答案 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。

相关问题