C# TimeSpan надвишава 23:59:59

Работя върху малко приложение за четене на XML файл и показване на стойност в мрежа. Някои типове стойности за показване са TimeSpan.

Работи добре, докато „TimeSpan currentTime“ по-долу не надвишава 23:59:59. Например, ако XML данни description.Attributes.GetNamedItem("time").Value е равно на 25:05:00, получавам TimeSpan равно на 25.00:05:00. Така не 25 часа и 5 минути, А 25 дни и 5 минути!

Може ли някой да ми помогне?

TimeSpan currentTime;
if (!TimeSpan.TryParse(description.Attributes.GetNamedItem("time").Value, out currentTime))
{
    // alert parse is not good
    return;
}

person user3651683    schedule 19.05.2014    source източник
comment
1) Същото нещо случва ли се, ако извикате формата с три аргумента на TryParse() и посочите CultureInfo.InvariantCulture във втория аргумент? 2) Сигурни ли сте, че вашият XML съдържа 25:05:00, а не 25.05:00?   -  person Frédéric Hamidi    schedule 19.05.2014
comment
класът Timepan съхранява милисекунди, секунди, минути, часове и дни (msdn.microsoft.com/de-de/library/). Това, което имате там, изглежда като проблем с анализирането. Можете ли да публикувате низа (/ примерен низ), който анализирате там?   -  person Mark    schedule 19.05.2014


Отговори (1)


Това е така, защото класът интерпретира зададения от вас период от време като неправилен за период от време (и по този начин се връща към дни вместо часове).

Трябва да бъде в този формат за 25 часа:

1:01:05:00

Или това (което е за предпочитане):

1.01:05:00
person Patrick Hofman    schedule 19.05.2014
comment
Да нямаш предвид 1.01:05:00? (точка вместо двоеточие) - person joe; 19.05.2014