En C# si quiero analizar una fecha y hora, pero algunas veces solo tengo una fecha y no un componente de tiempo o ninguna fecha, sino un componente de tiempo, ¿cómo podría hacerlo? Normalmente, cuando omite el componente de hora, automáticamente supone que la hora es 12:00 a.m. Pero no quiero esto Si falta el componente de tiempo, solo quiero que DateTime almacene solo una fecha y deje desactivado el componente de tiempo.DateTime En C#
Respuesta
El valor de un DateTime internamente es solo UInt64
(ulong
en C#) que almacena el número de tics desde una fecha anterior, por lo que le guste o no, el componente de tiempo siempre estará allí.
DateTime por definición almacena una fecha y una hora tales que no puede representar una de ellas sin representar la otra. Si solo quiere la fecha (o solo la hora), analice la información que necesita y descarte el resto.
No es posible tener un DateTime
sin un componente de tiempo. Puede almacenar un indicador booleano junto con él en un struct
para almacenar datos sobre la existencia de ese componente. Sin embargo, no hay forma de utilizar la rutina de análisis automático para distinguir entre una cadena DateTime
con un tiempo especificado como 12:00 PM
y uno inexistente.
Esto es lo que necesita –
Si realmente te molesta, siempre puedes crear una clase contenedora que pueda ocultar las partes de tiempo de la clase datetime.
No tendrá el componente de tiempo sin importar qué. Lo mejor que puede hacer es acceder a la propiedad Date en su objeto DateTime si realmente tiene que hacerlo.
http://msdn.microsoft.com/en-us/library/system.datetime.date.aspx
La propiedad de fecha sigue siendo solo un DateTime con el componente de hora configurado a la medianoche. – LukeH
Usted podría tener una clase que almacena una fecha y hora y determina si el tiempo se ha puesto un solo o si la fecha fue fijada y valores de retorno en consecuencia.
Un objeto DateTime siempre almacena una fecha + una vez, no solo una. Siempre puede optar por trabajar solo con la parte de fecha, es decir, solo usar propiedades como Año, Mes, Día de la semana. Pero debajo siempre habrá algo de tiempo almacenado.
Si sólo necesita pantalla ciertas partes, sólo tiene que utilizar cualquiera de las cadenas de formato (ejemplos son para "en nosotros" cultura):
DateTime.Now.ToString("d"); // 5/26/2009
DateTime.Now.ToString("t"); // 4:56 PM
La referencia completa: http://msdn.microsoft.com/en-us/library/az4se3k1.aspx
utilice
DateTime date = new DateTime();
date = DateTime.Parse("1/1/2001");
para establecer la fecha, a continuación, utilizar
date.ToShortDateString();
o
date.Year;
date.Month;
date.Day;
a obtener lo que necesita. ¡Espero que ayude!
Como se mencionó antes DateTime siempre tendrá una fecha y una parte de tiempo del mismo, si sólo desea una sola pieza usar el modo descrito por las demás
DateTime date = DateTime.Parse("2009-11-30);
date.Year; = 2009
date.Month; = 11
date.Day; = 30
date.Hour; = 0
and so on
Lo que debe tener en cuenta es que todos estos métodos solo devolverán un número entero.
Si desea conocer todas las formas posibles de analizar una cadena, John Sheehan ha creado un gran Cheat Sheet wit all possible ways to parse and manipulate dates, y otras cadenas para el caso.
Es muy peligroso suponer que la parte de fecha de DateTime
es necesariamente la fecha que está esperando. Como se señaló, DateTime
siempre incluye y considera el aspecto del tiempo, incluso cuando no lo ve.
Este es un gran problema cuando tiene datos almacenados en diferentes zonas horarias (y especialmente si no se conserva el conocimiento de esa compensación, porque se supone que lo que se almacena es una Fecha, no una fecha, -hora).
Puede almacenar una fecha de nacimiento como '01/01/2000 00:00:00 'durante el horario de verano, que luego se almacena en UCT como '31/12/1999 23:00:00'. Cuando luego lee esa fecha de nacimiento más tarde, la porción de fecha ahora es un día antes.
Es mejor crear su propio tipo. Es extraño que Microsoft no creyera que valga la pena tener un tipo Date
.
- 1. Constante DateTime en C#
- 2. DateTime Compare en C#
- 3. Formato DateTime en C#
- 4. ¿Cómo comparar DateTime en C#?
- 5. Valide un DateTime en C#
- 6. Valores negativos en C# DateTime
- 7. C++ DateTime clase
- 8. C#: DateTime convertir
- 9. DateTime.MinValue vs new DateTime() en C#
- 10. Convertir C# DateTime en formato MongoDB
- 11. IsoDate y DateTime en MongoDB usando C#
- 12. analizar la cadena de DateTime en C#
- 13. cadena a la conversión DateTime en C#
- 14. C# DateTime to String Issue
- 15. C#: inicializar una matriz DateTime
- 16. ¿Hay alguna diferencia entre DateTime en C# y DateTime en el servidor SQL?
- 17. DateTime, DateTime? y LINQ
- 18. C# DateTime Analizar/convertir este formato "20120314T130000"
- 19. C# DateTime siempre crea un objeto nuevo?
- 20. C# convert UTC int al objeto DateTime
- 21. ¿Cómo puedo restar dos objetos genéricos (T - T) en C# (Ejemplo: DateTime - DateTime)?
- 22. Almacenamiento de C# datetime a postgresql TimeStamp
- 23. Objective-C y sqlite's DATETIME tipo
- 24. Convertir DateTime para MySQL usando C#
- 25. Obtener el día de DateTime con C#
- 26. C# DateTime cuestiones restar de zona horaria
- 27. Cómo convertir DateTime de JSON a C#?
- 28. C# DateTime para agregar/Jornadas Restar
- 29. C# string to DateTime with timezone
- 30. ¿Cómo convertir un byte [] en datetime en C#?
+1, DateTime es realmente un conjunto de métodos de utilidad envueltos alrededor de un valor integral. –
El valor interno no está firmado, aunque tiene poca diferencia en cuanto al uso. – Noldorin