2010-07-09 33 views
7

Considere tengo una tabla de datos dt y tiene una columna DateofOrder,¿Es posible formatear una columna de fecha de una tabla de datos?

DateofOrder 
07/01/2010 
07/05/2010 
07/06/2010 

Quiero dar formato a estas fechas en la columna DateOfOrder a este

DateofOrder 
01/Jul/2010 
05/Jul/2010 
06/Jul/2010 

Cualquier sugerencia ..

+0

¿Cómo se muestran? –

+0

@Dean lo que no entiendo tu punto ... –

+0

@Dean quiero formatear estas fechas y reemplazarlas en la tabla de datos ... –

Respuesta

11

Lo más inteligente sería asegurarse de que su DataTable esté escrita a máquina, y esta columna es del tipo DateTime. Luego, cuando vaya a imprimir los valores en la pantalla, puede establecer el formato en ese punto sin borrar los datos subyacentes.

Si eso no es posible, aquí es un método de extensión A menudo utilizo:

public static void Convert<T>(this DataColumn column, Func<object, T> conversion) 
{ 
    foreach(DataRow row in column.Table.Rows) 
    { 
     row[column] = conversion(row[column]); 
    } 
} 

Se podría utilizar en su situación como:

myTable.Columns["DateOfOrder"].Convert(
    val => DateTime.Parse(val.ToString()).ToString("dd/MMM/yyyy")); 

Sólo funciona en tablas de datos sin tipo (por ejemplo, el el tipo de columna necesita ser un objeto, o posiblemente una cadena).

+0

utilicé su segunda opción pero 'Convert' no es un método en DataColumn de una tabla de datos .. –

+0

Es por eso que tiene el método de extensión. Necesita agregar el primer método que usa para su programa, y ​​luego debería poder usar convertir. –

+0

@Pandiya si nota la parte en negrita de la respuesta, es un * método de extensión * que tiene que agregar, y es por eso que lo escribí aquí. –

0

.ToString ("dd/MMM/yyyy") (suponiendo que sus datos son del tipo Fecha y hora)

0

Acaba de exponer la respuesta de saille aquí:

Para un DateTime, el formato no es un problema. Un DateTime es en realidad el número de ticks contados a partir de la medianoche del 1 de enero y 1 de la madrugada. Así que, realmente, es solo un largo. El formato solo se convierte en un problema cuando llega el momento de convertirlo en una cadena. Por lo tanto, tendrá que ir y ocuparse del formateo cuando lo saque de la tabla de datos y esté listo para imprimirlo, o lo ponga en la tabla de datos como una cadena (que no recomendaría, para mayor flexibilidad). propósitos). El formato se puede hacer con la llamada .ToString en el DateTime que sugiere saille, .ToString("dd/MMM/yyyy")

Cuestiones relacionadas