Вы вообще не должны использовать Strings
. НЕ выполняйте преобразование между DateTime
и String
по любой причине, которая не требует использования String
в качестве вывода, например, для отображения или сериализации, или в качестве ввода, например, при чтении файла или пользовательского ввода с консоли. Если вы начинаете с DateTime
и хотите закончить на DateTime
, тогда не должно быть промежуточных Strings
.
Предполагая, что ваш DataGridView
содержит DateTime
значений, вы можете сделайте это:
StartTime.Value = #1/01/2010# + CDate(DGVEvemts(1, DGVEvemts.Rows.Count - 1)).TimeOfDay
Это создает литерал Date
, получает Date
из сетки, получает временную часть из этого Date
и добавляет его к литералу. Если время в сетке может содержать неполные минуты, а вам нужны только целые минуты, вы можете сделать это:
Dim dt = CDate(DGVEvemts(1, DGVEvemts.Rows.Count - 1))
StartTime.Value = #1/01/2010# + New TimeSpan(dt.Hours, dt.Minutes, 0)