Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

sábado, 19 de diciembre de 2015

Cómo mostrar la fecha completa en un DataGridView cuando es exactamente medianoche

Hice la pregunta originalmente en StackOverflow.

Tengo este DataGridView:


El problema está en la fila seleccionada: en realidad tiene el valor "07/10/2015 12:00:00 am", pero en el DataGridView sólo se muestra "07/10/2015". La siguiente fila tiene el valor de " 07/10/2015 12:00:26 am ". Este problema sólo ocurre cuando los valores DateTime son exactamente medianoche. Cuando paso ese valor al de texto a la izquierda con el siguiente código, el valor DateTime se muestra correctamente (los valores DateTime están en la columna con índice 2):

text1.Text = dgView.SelectedRows[0].Cells[2].Value.ToString();

No quiero cambiar el valor de DefaultCellStyle.Format porque quiero mostrar los valores tipo DateTime en el formato de la configuración regional del sistema operativo (en mi caso es es-pe).

La solución me la dio Jon Skeet. Si se está usando Visual Studio, se debe seleccionar el DataGridView e ir a la ventana Propiedades->DefaultCellStyle e ingresar "G" en "Format":

 
Con esto el DataGridView mostrará las horas exactamente a medianoche y sin cambair la configuración regional.