【问题标题】:using TimeSpan.ParseExact() method to parse string to TimeSpan使用 TimeSpan.ParseExact() 方法将字符串解析为 TimeSpan
【发布时间】:2014-01-30 13:00:40
【问题描述】:

我想根据我的自定义文化将字符串解析为时间。 我的格式为 ShortTimePattern 为 HH:ss

示例代码:

static void Main(string[] args)
{
    CultureInfo c = new CultureInfo("en");
    c.DateTimeFormat.ShortTimePattern = "HH:ss";
    TimeSpan result = TimeSpan.ParseExact("07:55", "t", c, TimeSpanStyles.None);
    Console.WriteLine(result);
    Console.Read();

    //result = TimeSpan.ParseExact(ConvertToString(value, culture), "t", culture);
}

但现在的问题是我得到了

hours = 07
minutes = 55
seconds = 00

我想去哪里

hours = 07
minutes = 00
seconds = 55

按照文化中指定的格式

【问题讨论】:

    标签: c# parsing timespan


    【解决方案1】:

    根据 MSDN (TimeSpan.ParseExact Method (String, String, IFormatProvider, TimeSpanStyles)):

    c”、“t”和“T”标准格式字符串使用不变区域性的格式约定。

    这就是你得到这种输出的原因。

    你为什么不做以下事情:

    TimeSpan result = TimeSpan.ParseExact("07:55", "hh':'ss", null);
    

    【讨论】:

    • 除非您想要 HH':'ss,因为您需要在 TimeSpan 模式中引用冒号。
    • 我得到了这两个格式的异常:TimeSpan result = TimeSpan.ParseExact("07':'55", "HH':'ss", null); TimeSpan 结果 = TimeSpan.ParseExact("07':'55", "HH:ss", null);
    • 对不起,我把'' 输入了错误的字符串。更新了我的问题,立即尝试。
    • 仍然是一个例外@MarcinJuraszek
    • 好的,必须是hh,而不是HH
    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多