Supongamos que tengo el valor 22/06/2009 10:00:00 AM. ¿Cómo obtengo solo las 10:00 a partir de esta fecha?
Supongamos que tengo el valor 22/06/2009 10:00:00 AM. ¿Cómo obtengo solo las 10:00 a partir de esta fecha?
Respuestas:
Tienes muchas opciones para esto:
DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM");
dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits
dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits
dt.ToString("H:mm"); // 7:00 // 24 hour clock
dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock
Enlace útil: Patrones DateTime.ToString ()
ss
son segundos con un cero a la s
Desde a DateTime
, puede usar .TimeOfDay
, pero eso le da una TimeSpan
representación del tiempo del día (10 horas).
Solo hay un tipo de fecha y hora en C # y consta de la porción de fecha y hora. Si no le importa la parte Fecha de DateTime, configúrela con el valor predeterminado de esta manera:
DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)
De esta manera, puede ser coherente en todas las versiones de .NET, incluso si Microsoft decide cambiar la fecha base a algo más que 1/1/0001.
Es posible que desee consultar el método DateTime.ToShortTimeString () .
Además, existen muchos otros métodos y propiedades en el objeto DateTime que pueden ayudarlo a formatear la fecha o la hora de la manera que desee. Solo eche un vistazo a la documentación.
Prueba esto:
TimeSpan TodayTime = DateTime.Now.TimeOfDay;
Hay diferentes formas de hacerlo. Puede usar DateTime.Now.ToLongTimeString()
que devuelve solo el tiempo en formato de cadena.
DateTime.ToLongTimeString()
más que DateTime.Now.ToLongTimeString()
. Dada la antigüedad de este hilo, es mejor no resucitarlo a menos que la respuesta contribuya a una mejora significativa sobre las respuestas anteriores.
Puedes simplemente escribir
string time = dateTimeObect.ToString("HH:mm");
DateTime now = DateTime.Now;
now.ToLongDateString(); // Wednesday, January 2, 2019
now.ToLongTimeString(); // 2:33:59 PM
now.ToShortDateString(); // 1/2/2019
now.ToShortTimeString(); // 2:16 PM
now.ToString(); // 1/2/2019 2:33:59 PM
si está usando gridview, puede mostrar solo la hora con un DataFormatString="{0:t}"
ejemplo:
By bind the value:-
<asp:Label ID="lblreg" runat="server" Text='<%#Eval("Registration_Time ", "{0:t}") %>'></asp:Label>
By bound filed:-
<asp:BoundField DataField=" Registration_Time" HeaderText="Brithday" SortExpression=" Registration Time " DataFormatString="{0:t}"/>
Si está buscando comparar tiempos, y no las fechas, podría tener una fecha de comparación estándar, o coincidir con la fecha que está utilizando, como en ...
DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);
Puede haber mejores formas de hacerlo, pero mantiene sus fechas coincidentes.
También debe tener en cuenta DateTime Kind.
public static DateTime GetTime(this DateTime d)
{
return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}