2010-12-05 10 views
8

Tengo la fecha y la hora almacenadas en mi base de datos y no quiero mostrar ambas, solo la fecha. Cuando guardo la fecha/hora en una variable, ¿cómo obtengo solo la fecha en C#?Eliminar tiempo de una cadena de fecha/hora

+0

No especificó si está mostrando la fecha a un usuario o si se está convirtiendo en una cadena para algún tipo de intercambio. La respuesta será diferente dependiendo de la respuesta a eso. –

+0

Fue una pregunta ingenua hace un tiempo y estoy de acuerdo en que no está muy claro cuál era mi intención. Creo que en ese momento estaba buscando un formateador de cadenas para la fecha. –

Respuesta

4

En cierto modo depende de donde usted está escribiendo a. El especificador de formato es "{0: d}" o "{0: D}". Pero depende si está usando ToString(), ToShortDateString(), ToLongDateString(), algún tipo de control de cuadrícula, o algo completamente distinto.

9
DateTime dt = DateTime.Now; 
...=dt.ToLongDateString(); 
...=dt.ToShortDateString(); 
+1

+1 Preferiría esto sobre la respuesta aceptada ya que usa la configuración de cultura actual. – Doggett

+0

la respuesta que estaba buscando era: {0: MM/dd/aa}, –

+0

+1 también para usar la configuración de cultura actual –

9

Si lo que desea es la parte de fecha de una estructura System.DateTime, puede utilizar la propiedad Date (System.DateTime.Date). Elimina horas, minutos, segundos y milisegundos.

Por lo tanto, si el tipo de datos de columna de la base de datos se define como datetime o similar (que es la recomendación general si su base de datos lo admite), no tiene que utilizar los formatos de cadena y cadena.

1

Utilice el método proporcionado ToShortDateString().

por ejemplo. dateToDisplay.ToShortDateString()

Ejemplo

using System; 
using System.Globalization; 
using System.Threading; 

public class Example 
{ 
    public static void Main() 
    { 
     DateTime dateToDisplay = new DateTime(2009, 6, 1, 8, 42, 50); 
     CultureInfo originalCulture = Thread.CurrentThread.CurrentCulture; 
     // Change culture to en-US. 
     Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 
     Console.WriteLine("Displaying short date for {0} culture:", 
         Thread.CurrentThread.CurrentCulture.Name); 
     Console.WriteLine(" {0} (Short Date String)", 
         dateToDisplay.ToShortDateString()); 
     // Display using 'd' standard format specifier to illustrate it is 
     // identical to the string returned by ToShortDateString. 
     Console.WriteLine(" {0} ('d' standard format specifier)", 
         dateToDisplay.ToString("d")); 
     Console.WriteLine(); 

     // Change culture to fr-FR. 
     Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR"); 
     Console.WriteLine("Displaying short date for {0} culture:", 
         Thread.CurrentThread.CurrentCulture.Name); 
     Console.WriteLine(" {0}", dateToDisplay.ToShortDateString()); 
     Console.WriteLine(); 

     // Change culture to nl-NL.  
     Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-NL"); 
     Console.WriteLine("Displaying short date for {0} culture:", 
         Thread.CurrentThread.CurrentCulture.Name); 
     Console.WriteLine(" {0}", dateToDisplay.ToShortDateString()); 

     // Restore original culture. 
     Thread.CurrentThread.CurrentCulture = originalCulture; 
    } 
} 
// The example displays the following output: 
//  Displaying short date for en-US culture: 
//   6/1/2009 (Short Date String) 
//   6/1/2009 ('d' standard format specifier) 
//  
//  Displaying short date for fr-FR culture: 
//   01/06/2009 
//  
//  Displaying short date for nl-NL culture: 
//   1-6-2009 
1

que se supone que tiene una variable del tipo DateTime.

Si desea convertir en una cadena, utilice:

dtVar.ToShortDateString(); 

Si necesita una información de formato para digamos un control .NET (como una cuadrícula de datos), utilice:

DataFormatString="{0:d}" 

Ambos eliminan la porción de tiempo de los datos de DateTime y usan la configuración de cultura actual .

Cuestiones relacionadas