2008-12-11 25 views
9

Estaba buscando aquí la conversión de una cadena como "16:20" a un tipo DateTime sin perder el formato, dije que no quiero agregar dd/MM/yyy o segundos o AM/PM, porque db solo acepta este formato.DateTime Formato como HH: mm 24 Horas sin AM/PM

he intentado con culturas todavía

Gracias de antemano

Respuesta

12

Todos los objetos DateTime deben tener una fecha y una hora.

Si desea sólo el tiempo, el uso TimeSpan:

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

Si quieres un DateTime, agregue ese momento con el valor min:

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 
+0

Voy a intentar esto, porque veo que el otro desarrollador que trabaja con C++ estaba almacenando los datos como usted especifica. –

+0

que funciona pero se está configurando con formato AM/PM –

+1

¿es posible eliminar AM/PM en el último formato? y lo hace 24 horas, gracias de antemano –

3

DateTime.Now.ToString ("hh: mm") - Si se trata de C#.

Oh. Solo lee el encabezado.

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

de capital h de tiempo de 24 horas para –

+0

pero esto convertir el valor de cadena de la derecha? Quiero configurar el tipo de fecha y hora porque trabajo con una clase que contiene un atributo para este valor –

+0

Estoy obteniendo el valor de una vista de cuadrícula De esta manera: string hour = ((Etiqueta) selectedRow.Cells [0] .FindControl (" lblHorario ")). Texto; –

0

quiero abordar esta parte de su pregunta:

sin perder el formato

Una base de datos por lo general almacenar todos los valores de fecha y hora en un formato común estándar: ni siquiera humana legible. Si usa una columna de fecha y hora, se destruye el formato original.

Sin embargo, cuando recupera el valor, lo vuelve a convertir al formato que desee. Si quiere HH:mm, puede conseguirlo.

+0

He solucionado la pregunta por lo que la parte 'sin perder' del comentario de Joel tiene menos sentido ahora. –

1

qué quiere decir "perder el formato".

si lo convierte a un tipo DateTime, entonces el objeto DateTime tendrá dd/mm/aa y otras propiedades. dependiendo de cómo planee usar el objeto, puede "recuperar" su configuración original formateando el resultado de la cadena de la siguiente manera: DT.ToString ("HH: mm");

1

Dado que no estipula qué DBMS está utilizando, es difícil saber qué respuesta lo ayudará. Si usa IBM Informix Dynamic Server, simplemente use el tipo de datos 'DATETIME HOUR TO MINUTE', que registrará los valores en el reloj de 24 horas.

+0

pero en el lado del código im usando linqtosql, así que tengo que pasar todos los datos requeridos como tipos de base de datos. –

1
DateTime.Parse("16:20") 
+0

Estoy obteniendo esto con su fragmento de código: 11/12/2008 04:20:00 p.m. –

+0

Todavía estoy recibiendo FormatException no administrado por el código de usuario, por cierto, ahora configuro DateTime en ambos lados, lado del servidor y lado del cliente, entonces ¿por qué sigue trowing esta excepción? –

17

acaba de dar un formato de fecha a su fechaHora .

string DateFormat = "yyyy MM d " esto willl le dará el año mes y día. después de continuar; string DateFormat = "yyyy MM d HH:mm:ss " aquí en la capital H le dará el formato 24 hours time format y minúsculas "h" will give you the 12 hours time ...

cuando le dan la Dateformat como una cadena que puede hacer lo que quiera con fecha y hora.

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

O

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

SALIDA:

20120823132544 
+2

+1 para "HH le dará formato de 24 horas" ¡Nunca lo sabía, gracias! –

Cuestiones relacionadas