2010-11-30 20 views
5

¿Cómo puedo guardar la fecha y hora, sin tiempo o preferiblemente con una marca de tiempo de 12:00, sin importar cuál es el momento en ese momento?¿Cómo guardar la fecha y hora sin el tiempo?

No quiero usar .ToString("dd/MM/yyyy");, ya que abrirá un montón de nuevos errores posibles.

+1

¿Dónde desea guardar la fecha? En la base de datos? u objeto de tipo clase Datetime? – Shekhar

+0

A la base de datos. – Willem

+0

El tiempo puede ser eliminado en código, capa de persistencia o base de datos, ¿qué lugar parece más natural para el problema que está tratando de resolver? –

Respuesta

14

DateTime estructura tiene una propiedad Date que debe servir a sus necesidades:

DateTime dateOnly = dateTime.Date; 

Por supuesto, seguiremos incluyen inevitablemente una parte de tiempo, pero usted debería ser capaz de ignorarlo.

+0

Gracias. '.Date' produjo el sello de tiempo correcto. =) – Willem

+0

pero esto tiene el riesgo de ser incorrecto. Por ejemplo, si pasa de GMT a BST y la medianoche se mueve a las 11 pm del día anterior, entonces la parte Fecha cambió. – Sam

1

Uso

DateTime.Now.Date 

o para myDate:

myDate.Date 
+1

FYI, 'DateTime.Today' es una abreviatura útil para' DateTime.Now.Fecha'' – Jon

1

Si tiene cualquier fecha

DateTime anyDate = DateTime.Now; 
DateTime dateAtNoon = anyDate.Date.AddHours(12); 

o si desea hoy se puede utilizar el acceso directo

DateTime dateAtNoon = DateTime.Today.AddHours(12); 
1

Esto va a hacer el truco con una preferencia para ts.Date

var ts = DateTime.Now; 
var dateAtMidnight = ts.Date; 
var dateAtNoon = ts.Date.AddHours(12); 
+0

Estoy bastante seguro de que, de forma predeterminada, una nueva fecha sin tiempo estará predeterminada a las 12:00 AM. ¿Es esto diferente de lo que estabas sugiriendo? –

+0

Correcto. Solo me equivoco al predeterminarlo a 12 P.M. y Willem no precisó. Si vive en Europa, 12:00 significa 12:00 p.m. – VdesmedT

2

Como otros han dicho

DateTime.Now.Date 

es el camino a seguir. Sin embargo, también vale la pena pensar si desea desglosar la información de la zona horaria para evitar problemas en diferentes TZ en las máquinas cliente \ servidor.

Puede utilizar

var dateTime = new DateTime(DateTime.Now.Date.Ticks, DateTimeKind.Unspecified); 
Cuestiones relacionadas