¿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

Yahia
fuente

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

Mark Brackett
fuente
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
46

Prueba esto:

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

Para otros formatos, puede consultar este sitio: C # DateTime Format

Musikero31
fuente
43

Otra opción usando String.Format ()

string.Format("{0:HH:mm:ss tt}", DateTime.Now)
Chris Fulstow
fuente
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)
Opuesta
fuente
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
24
DateTime.Now.TimeOfDay

o

DateTime.Now.ToShortTimeString()
benPearce
fuente
15

Aquí vamos:

 DateTime time = DateTime.Now;
 Console.WriteLine(time.ToString("h:mm:ss tt"));
praguan
fuente
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.

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

solo inténtalo, usa todo lo que necesites

Gupta
fuente
9

Datetime.TimeOfDaydevuelve ay TimeSpanpodría ser lo que estás buscando.

Stefan Schultze
fuente
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 .

Greg D
fuente
5

Esta puede ser una posible solución:

DateTime now = DateTime.Now;
string time = now.ToString("T");
Hannan Hossain
fuente
3

Para calcular la fecha y hora actual:

DateTime theDate = DateTime.UtcNow;

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

MessageBox.Show(custom);
sadhana
fuente
3
var CurDate= DateTime.Now;
CurDate.Hour;
CurDate.Minute;
CurDate.Millisecond
Sarat Chandra
fuente
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

Khb
fuente
2

muy simple DateTime.Now.ToString("hh:mm:ss tt")

Ranjit Singh
fuente
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 ...

David Castro
fuente
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

Douglas G. Allen
fuente
1

Usa el siguiente código

DateTime.Now.ToString("h:mm:ss tt")
Bijeesh Raghavan
fuente
¿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.

Albert
fuente