2008-12-11 5 views
9

Я искал здесь о преобразовании строки типа «16:20» в тип DateTime без потери формата, я сказал, что не хочу добавлять dd/MM/yyy или секунды или AM/PM, потому что db просто принимает этот формат.DateTime Формат как HH: mm 24 часа без AM/PM

Я пытался с культурами еще

Заранее спасибо

ответ

12

Все объекты DateTime должны иметь дату и время.

Если вы хотите просто времени, используйте TimeSpan:

TimeSpan span = TimeSpan.Parse("16:20"); 

Если вы хотите DateTime, добавить, что время до значения мин:

TimeSpan span = TimeSpan.Parse("16.20"); 
DateTime dt = DateTime.MinValue.Add(span); 
// will get you 1/1/1900 4:20 PM which can be formatted with .ToString("HH:mm") for 24 hour formatting 
3

DateTime.Now.ToString ("чч: мм") - Если это C#.

Ох. Только читайте заголовок.

DateTime dt = new DateTime(2008, 12, 11, Convert.ToInt32("16"), Convert.ToInt32("32"), 0); 
+12

капитала ч за 24 часа времени – 2008-12-11 21:26:54

+0

но преобразовать значение в строку правой? Я хочу установить его тип datetime, потому что я работаю с классом, который содержит атрибут для этого значения. – 2008-12-11 21:27:03

+0

im получает значение из сетки. Таким образом: string hour = ((Label) selectedRow.Cells [0] .FindControl (" lblHorario ")) Текст. – 2008-12-11 21:31:54

0

Я хочу решить эту часть вопроса:

без потери формата

база данных, как правило, хранить все значения даты-времени в стандартном общем формате, который даже не человек удобочитаемый. Если вы используете столбец datetime, исходный формат будет уничтожен.

Однако, когда вы извлекаете значение, вы возвращаете его обратно в любой формат. Если вы хотите HH:mm, вы можете получить его.

+0

Я испробовал вопрос, так что «с отсутствующей» частью комментария Джоэля теперь становится меньше смысла. – 2008-12-11 21:25:47

1

Что вы подразумеваете под словом «потеря формата».

Если вы преобразуете его в тип DateTime, то объект DateTime будет иметь dd/mm/yy и другие свойства. в зависимости от того, как вы планируете использовать объект, вы можете «восстановить» свои исходные настройки, форматируя вывод строки следующим образом: DT.ToString («HH: mm»);

1

Поскольку вы не оговариваете, какую СУБД вы используете, трудно понять, какой ответ вам поможет. Если вы используете IBM Informix Dynamic Server, вы просто используете тип данных «DATETIME HOUR TO MINUTE», который будет записывать значения в 24-часовых часах.

+0

, но со стороны кода im, используя linqtosql, поэтому я должен передать все данные, необходимые в качестве типов DB. – 2008-12-11 21:45:13

17

Просто дать формат даты вашего DATETIME ,

string DateFormat = "yyyy MM d " это willl даст вам год месяц и день. после продолжения; string DateFormat = "yyyy MM d HH:mm:ss " в здесь Capital H даст вам формат 24 hours time format и строчных "h" will give you the 12 hours time ...

когда вы даете DateFormat как строку, которую вы можете делать все, что вы хотите с указанием даты и времени.

string DateFormat = "yyyyMMdHHmmss"; 
string date = DateTime.Now.ToStrign(DateFormat); 

ИЛИ

Console.writeline(DateTime.Now.ToStrign(DateFormat)); 

ВЫХОДА:

20120823132544