Получить значение времени строки DateTime в DataGridView?

Я новичок в C#. У меня есть DataGridView, который отображает:

string Column4 = DateTime.Today.AddDays(1).AddHours(7).ToString();

Как мне потом получить только значение времени (например, 07:00:00) в виде строки?

Обновлено: дата должна быть в текущем формате и оставаться такой в ​​DataGridView, но, например, когда я это делаю:

 string newString = Column4;
 Console.WriteLine(newString);

Как мне просто извлечь значение времени из столбца 4, а не всей даты?

РЕДАКТИРОВАТЬ2: Увидел возможный повторяющийся вопрос и попробовал:

 DateTime newString = DateTime.Parse(Column4);
 newString.ToString("HH:mm");
 Console.WriteLine(newString);

Но это все же произвело:

05.02.2018 07:00:00

Вам не нужно ничего "извлекать", вы устанавливаете формат отображения. (например, HH:mm:ss)

DavidG 02.05.2018 15:39

Где вы получаете данные? Не могли бы вы поделиться своим кодом?

Saadi 02.05.2018 15:40

Когда вы говорите «позже», вы имеете в виду значение, когда оно было впервые отображено или когда вы его получили? Также вам не нужен AddDays(0) ..

stuartd 02.05.2018 15:42

Возможный дубликат Как получить только время из даты и времени с #

mjwills 02.05.2018 15:42

проблема в том, что если вы добавите время, скажем, 3 часа ночи, время сейчас 10 утра, как вы ожидаете, что он узнает, что вы добавили 7 часов в какой-то момент?

BugFinder 02.05.2018 15:44

Извините, я не понял, я обновлю вопрос.

Logan9Fingers 02.05.2018 15:55

@stuartd AddDays (0) должно было быть AddDays (1). Отредактировал это.

Logan9Fingers 02.05.2018 16:02

@mjwills Спасибо за ссылку! Я думал, что это именно то, что мне нужно, но по какой-то причине он все еще показывает полную дату и время. Я редактировал то, что пытался.

Logan9Fingers 02.05.2018 16:13

Что выводит Console.WriteLine(newString.ToString("HH:mm"));? Как вы думаете, почему это так?

mjwills 02.05.2018 23:48
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
9
417
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вам нужна только временная стоимость, вы можете использовать структуру TimeSpan. Эта структура представляет собой временной интервал, который вы можете настраивать по своему усмотрению. Вы можете использовать конструктор структуры и его метод ToString() для хранения строкового представления того времени.

Это код, который вы можете использовать:

string Column4 = (new TimeSpan(7, 0, 0)).ToString();

Если вам понадобится позже использовать то же значение TimeSpan, я предлагаю вам сохранить его в переменной:

TimeSpan time = new TimeSpan(7, 0, 0);
string Column4 = time.ToString();

Помните, что если вы хотите сделать ссылку на дату, вы можете использовать структуру DateTime. В противном случае, если вам нужно только время, вы можете использовать структуру TimeSpan.

Чтобы преобразовать структуру TimeSpan в структуру Datetime, вы можете сделать это:

DateTime date = DateTime.Today + new TimeSpan(7, 0, 0)).ToString();

Обновлять: Если вам просто нужно время из структурной переменной DateTime, вы можете отформатировать ее:

string newString = DateTime.Parse(Column4).ToString("t");

// Result: 7:00

Или же

string newString = DateTime.Parse(Column4).ToString("T");

// Result: 7:00:00

Вы можете увидеть больше строковых форматов на эта страница Microsoft MSDN.

In this Microsoft MSDN page is an example about how to instantiate a TimeSpan structure with desired time:

By calling one of its explicit constructors. The following example initializes a TimeSpan value to a specified number of hours, minutes, and seconds:

TimeSpan interval =  newTimeSpan(2, 14, 18);
Console.WriteLine(interval.ToString()); // Displays "02:14:18". 

Извините, мне действительно нужно, чтобы значение даты отображалось в моем DataGridView.

Logan9Fingers 02.05.2018 16:17

ОК! Я обновил свой ответ, чтобы решить ваш вопрос!

CryogenicNeo 02.05.2018 16:29

Другие вопросы по теме