¿Cómo se obtiene la hora actual del día?


269

¿Cómo se obtiene la hora actual (no la fecha y la hora)?

Ejemplo: 5:42:12 PM

Respuestas:


391

DateTime.Now.TimeOfDayte lo da como a TimeSpanpartir de la medianoche.

DateTime.Now.ToString("h:mm:ss tt")te lo da como una cuerda .

Referencia de fecha y hora: https://msdn.microsoft.com/en-us/library/system.datetime


25
DateTime.Now.ToShortTimeString () hace lo mismo que la segunda sugerencia.
Kyle Trauberman

44
bueno, casi lo mismo, devuelve una cadena pero falta la porción de segundos del tiempo.
Kyle Trauberman

12
.ToString ("HH: mm: ss tt") le daría 17:42:12 PM, mientras que .ToString ("h: mm: ss tt") le da 5:42:12 PM.
Merenzo

66
@Kyle: no del todo exacto. ToShortTimeString devuelve la hora en el formato de tiempo corto seleccionado por el usuario, como se especifica en la configuración regional de Windows.
BlackWasp


43

Otra opción usando String.Format ()

string.Format("{0:HH:mm:ss tt}", DateTime.Now)

25

Hora actual con designador AM / PM:

DateTime.Now.ToString("hh:mm:ss tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)
DateTime.Now.ToString("hh:mm:ss.fff tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)

Hora actual usando notación de 0-23 horas:

DateTime.Now.ToString("HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)
DateTime.Now.ToString("HH:mm:ss.fff", System.Globalization.DateTimeFormatInfo.InvariantInfo)

3
@Anar, deshice tus -1's. La pregunta es "¿Cómo obtengo la hora del día" , que todas las respuestas responden. Su voto negativo se debe a que leyó la pregunta como "Cómo formatear horas como 5:00 PM" , mientras que OP solo (y explícitamente) mencionó ese formato de fecha específico como ejemplo. Incluso rechazaste la respuesta de @ Musikero31 , mientras menciona la página donde cualquiera puede buscar la cadena de formato que está buscando.
CodeCaster

Después de leer la pregunta nuevamente, creo que no estás equivocado. Pero tampoco me equivoco porque si esta es una pregunta general como usted propone, entonces la mayoría de los que respondieron han entendido mal la pregunta ya que sus respuestas no son generales sino específicas. En general, creo que la pregunta podría haber sido mucho más clara. Por cierto, ¿qué significa "Deshice tus -1"?
anar khalilov

@Anar como el formato de DateTime.Nowuna cadena requiere un formato, tuvieron que poner algo . Eso no lo convierte en malas respuestas, pero si cree que debería haber otro formato, no dude en editarlas. Quise decir que voté por las respuestas que votaron negativamente.
CodeCaster

1
Si no hubiera habido malentendidos, habrían puesto todas las versiones, no algo que viene primero en mente. Todos sabemos que SO es muy generoso con las personas que se esfuerzan por responder. Pero sí, no nos desviamos mucho del tema. Todo lo que puedo decir es que revisaré todos mis -1 y decidiré nuevamente.
anar khalilov


15

Aquí vamos:

 DateTime time = DateTime.Now;
 Console.WriteLine(time.ToString("h:mm:ss tt"));

2
El ttiempo debe ser capitalizado. Lo arregló para tu.
Programador

12

Esto será mejor, prueba este

    DateTime.Now.ToShortTimeString();

Para esto, no necesita especificar el formato de la hora.


11
DateTime.Now.ToString("yyyy-MM-dd h:mm:ss tt");

solo inténtalo, usa todo lo que necesites



8

Obtenga la fecha y hora actuales, luego simplemente use la parte de la hora. Mire las posibilidades para formatear una cadena de fecha y hora en los documentos de MSDN .


5

Esta puede ser una posible solución:

DateTime now = DateTime.Now;
string time = now.ToString("T");

3

Para calcular la fecha y hora actual:

DateTime theDate = DateTime.UtcNow;

string custom = theDate.ToString("d");

MessageBox.Show(custom);

3
var CurDate= DateTime.Now;
CurDate.Hour;
CurDate.Minute;
CurDate.Millisecond

2

Esto le mostrará solo la hora actual, en formato de 24 horas:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(DateTime.Now.ToLongTimeString().ToString());
        Console.WriteLine(DateTime.Now.ToShortTimeString().ToString());
        Console.ReadLine();
    }
}

Saludos
K



2
MyEmail.Body = string.Format("The validation is done at {0:HH:mm:ss} Hrs.",DateTime.Now);

Puede utilizar {0:HH:mm:ss}, {0:HH:mm:ss.fff}, {0:DD/mm/yyy HH:mm:ss}, etc ...


1

Estoy experimentando con esto también y encuentro estas páginas útiles también. Primero la clase principal ... https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx

Ahora algunos formatos de especificador para el método ToString ... https://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo(v=vs.110).aspx

Ejemplo:

using System;

namespace JD
{
    class Program
    {
        public static DateTime get_UTCNow()
        {
            DateTime UTCNow = DateTime.UtcNow;
            int year = UTCNow.Year;
            int month = UTCNow.Month;
            int day = UTCNow.Day;
            int hour = UTCNow.Hour;
            int min = UTCNow.Minute;
            int sec = UTCNow.Second;
            DateTime datetime = new DateTime(year, month, day, hour, min, sec);
            return datetime;
        }

        static void Main(string[] args)
        {
            DateTime datetime = get_UTCNow();            

            string time_UTC = datetime.TimeOfDay.ToString();
            Console.WriteLine(time_UTC);

            Console.ReadLine();

        }
    }
}

Lancé ese método TimeOfDay allí solo para mostrar que obtienes un tiempo predeterminado de 24 horas como se indica "la hora desde la medianoche"

Puede usar mi método geter (); :-RE


1

Usa el siguiente código

DateTime.Now.ToString("h:mm:ss tt")

¿Cómo difiere esto de la respuesta más votada?
Cray

-6

Prueba este. Me está funcionando en 3tier Architecture Web Application.

"'" + DateTime.Now.ToString() + "'"

Recuerde las comillas simples en la consulta de inserción.

Por ejemplo:

string Command = @"Insert Into CONFIG_USERS(smallint_empID,smallint_userID,str_username,str_pwd,str_secquestion,str_secanswer,tinyint_roleID,str_phone,str_email,Dt_createdOn,Dt_modifiedOn) values ("
 + u.Employees + ","
 + u.UserID + ",'"
 + u.Username + "','"
 + u.GetPassword() + "','"
 + u.SecQ + "','"
 + u.SecA + "',"
 + u.RoleID + ",'"
 + u.Phone + "','"
 + u.Email + "','"
 + DateTime.Now.ToString() + "','"
 + DateTime.Now.ToString() + "')";

La DateTimeinserción al final de la línea.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.