Простыми словами это происходит потому, что в python все работает по ссылке, поэтому, когда вы создаете список списков таким образом, вы в основном получаете такие проблемы.
Чтобы решить вашу проблему, вы можете сделать либо один из них: 1. Используйте документацию numpy array для numpy.empty 2. Добавьте список, когда вы попадаете в список. 3. Вы также можете использовать словарь, если хотите
Правильно, что это сработает:
TimeSpan time = TimeSpan.Parse("07:35");
И если вы используете его для проверки ...
TimeSpan time;
if (!TimeSpan.TryParse("07:35", out time))
{
// handle validation error
}
Учтите, что TimeSpan
в первую очередь предназначен для работайте с истекшим временем, а не временем дня. Он будет принимать значения, превышающие 24 часа, и также примет отрицательные значения.
Если вам нужно проверить, что входная строка является допустимым временем дня (> = 00:00 и & lt; 24:00), тогда вы должны рассмотреть это вместо:
DateTime dt;
if (!DateTime.TryParseExact("07:35", "HH:mm", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
// handle validation error
}
TimeSpan time = dt.TimeOfDay;
В качестве дополнительного преимущества это также будет анализировать 12-часовое форматированное время, когда AM или PM включены, если вы предоставите соответствующую строку формата, например "h:mm tt"
.
Используйте TimeSpan.Parse
для преобразования строки
http://msdn.microsoft.com/en-us/library/system.timespan.parse (v = vs.110). ASPX
Попробуйте
var ts = TimeSpan.Parse(stringTime);
С новым .NET у вас также есть
TimeSpan ts;
if(!TimeSpan.TryParse(stringTime, out ts)){
// throw exception or whatnot
}
// ts now has a valid format
. Это общая идиома для синтаксического анализа строк в .NET с первой версией обработки ошибочной строки , вытесняя FormatException, а последнее позволяет Boolean TryParse напрямую предоставить вам информацию.
Вы можете преобразовать время, используя следующий код.
TimeSpan _time = TimeSpan.Parse("07:35");
Но если вы хотите получить текущее время дня, вы можете использовать следующий код:
TimeSpan _CurrentTime = DateTime.Now.TimeOfDay;
Результат будет:
03:54:35.7763461
С помощью объекта cantain Hours, Minutes, Seconds, Ticks и т. д.
DateTime.TryParse
работает довольно медленно,DateTime.TryParseExact
быстрее. Мое понимание -TryParse
пробует набор шаблонов, чтобы увидеть, если какое-либо совпадение, если формат, который вы используете, находится внизу этого списка, его существенные накладные расходы, которые легко избежать – Joe 30 June 2014 в 20:20