Cómo Obtener la Fecha Actual en C# (C Sharp)
3 minuto(s)En esta página:
A veces necesitamos obtener la fecha actual con el lenguaje de programación C#, sin la hora.
Obtenerla es fácil, solo debes escribir y ejecutar ciertas líneas de código.
En este tutorial te enseñaré a Cómo Obtener la Fecha Actual en C# (C Sharp), vamos con ello.
Cómo Obtener la Fecha Actual en C# (C Sharp)
A continuación te mostraré las diferentes formas y situaciones en las que puedes obtener la fecha actual con C#:
1. Las formas básicas
Estas son las formas básicas:
Obtener fecha y hora local:
|
1 2 3 4 5 |
// Fecha y hora local del sistema DateTime ahoraLocal = DateTime.Now; Console.WriteLine(ahoraLocal); |
Y obtenemos:

En la imagen anterior ejecutamos C# en la terminal.
Si deseas aprender a hacerlo, sigue los pasos de este video de nuestro canal de YouTube.
Obtener solo la fecha (hora = 00:00:00):
|
1 2 3 4 5 |
// Fecha actual sin hora (hora = 00:00:00) DateTime hoy = DateTime.Today; Console.WriteLine(hoy); |
Obtener fecha y hora en UTC:
|
1 2 3 4 5 |
// Fecha y hora en UTC (Tiempo Universal Coordinado) DateTime ahoraUtc = DateTime.UtcNow; Console.WriteLine(ahoraUtc); |
Nota: DateTime.Now devuelve la hora local del equipo. DateTime.UtcNow devuelve la misma instantánea en tiempo universal (sin información de zona).
2. DateTimeOffset: mejor para instantes en tiempo con zona
DateTimeOffset combina una fecha/hora con un desplazamiento de zona horaria. Es recomendable cuando necesitas almacenar o transmitir instantes de tiempo con información de offset.
|
1 2 3 4 5 6 7 8 9 |
// Fecha/hora con offset (p. ej. -05:00) DateTimeOffset dto = DateTimeOffset.Now; Console.WriteLine(dto); // Convertir a UTC DateTimeOffset dtoUtc = dto.ToUniversalTime(); Console.WriteLine(dtoUtc); |
Usa DateTimeOffset cuando registres eventos que luego puedan ser interpretados en distintas zonas horarias.
3. Trabajando con zonas horarias
Para convertir entre zonas horarias usa TimeZoneInfo:
|
1 2 3 4 5 6 7 |
// Obtener info de una zona y convertir var mexicoCity = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); // Windows DateTime utcNow = DateTime.UtcNow; DateTime horaCDMX = TimeZoneInfo.ConvertTimeFromUtc(utcNow, mexicoCity); Console.WriteLine(horaCDMX); |
Los IDs de zona son diferentes en Windows y Linux/macOS.
En Linux suelen usarse IDs IANA (por ejemplo “America/Mexico_City”).
En Windows, “Central Standard Time”.
Ten esto en cuenta si tu app es multiplataforma.
4. Formateo de fecha y cultura
Para presentar la fecha de forma legible o según la cultura, usa ToString con formatos o CultureInfo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System.Globalization; DateTime ahora = DateTime.Now; // Formatos personalizados Console.WriteLine(ahora.ToString("dd/MM/yyyy")); // 17/10/2025 Console.WriteLine(ahora.ToString("yyyy-MM-dd HH:mm:ss")); // 2025-10-17 23:45:12 // Formato con cultura (por ejemplo español - España) var ci = new CultureInfo("es-ES"); Console.WriteLine(ahora.ToString("D", ci)); // Viernes, 17 de octubre de 2025 |
Si quieres “Viernes, 17 de octubre de 2025” en español, usa el formato largo con CultureInfo(“es-ES”).
5. Obtener timestamp Unix (segundos desde 1970)
|
1 2 3 4 5 6 7 |
// Desde .NET 6+ puedes usar DateTimeOffset.ToUnixTimeSeconds() long unixSeconds = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); Console.WriteLine(unixSeconds); // En versiones antiguas puedes restar new DateTime(1970,1,1,0,0,0,DateTimeKind.Utc) y obtener los segundos. |
Buenas prácticas y recomendaciones
- Usa DateTime.UtcNow o DateTimeOffset para almacenar tiempos de eventos y evitar problemas con cambios de zona o horario de verano.
- Usa CultureInfo para formatear la fecha según la región del usuario.
- Evita depender del reloj del cliente para decisiones críticas; usa un servidor de referencia o timestamps firmados si es necesario.
- Ten en cuenta las diferencias de IDs de zonas entre Windows y Linux si tu app es multiplataforma.
Ejemplo completo
Ejecuta este código para ver todas las variantes:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
using System; using System.Globalization; class Program { static void Main() { Console.WriteLine("DateTime.Now: " + DateTime.Now); Console.WriteLine("DateTime.Today: " + DateTime.Today); Console.WriteLine("DateTime.UtcNow: " + DateTime.UtcNow); var dto = DateTimeOffset.Now; Console.WriteLine("DateTimeOffset.Now: " + dto); Console.WriteLine("Unix seconds (UTC): " + DateTimeOffset.UtcNow.ToUnixTimeSeconds()); // Formateo con cultura var ci = new CultureInfo("es-ES"); Console.WriteLine("Formato largo (es): " + DateTime.Now.ToString("D", ci)); // Ejemplo conversión de zona (puede variar según sistema) try { var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); // Windows example Console.WriteLine("Hora en 'Central Standard Time': " + TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tz)); } catch (TimeZoneNotFoundException) { Console.WriteLine("Zona horaria no encontrada en este sistema."); } } } |
Así de fácil puedes obtener la fecha actual en C# (C Sharp).
Conclusión
En este tutorial has aprendido a Cómo Obtener la Fecha Actual en C# (C Sharp).
Te será útil para trabajar con la hora en tus proyectos con C#.
Recuerda practicar mucho para que llegues a dominar el lenguaje de programación C#.
Síguenos en nuestras Redes Sociales y demás canales digitales para que no te pierdas nuestros próximos contenidos.

También en las categorías, etiquetas, búsquedas y más.
En versiones anteriores, se veian con alto disparejo.
Seguimos trabajando en mejorar la comunidad.



Seguimos trabajando las 24 horas del día para brindarte la mejor experiencia en la comunidad.
Hemos corregido el problema y ahora la web no muestra esa barra horizontal y se ve en su tamaño natural.
Seguimos trabajando las 24 horas del día, para mejorar la comunidad.
Seguimos trabajando las 24 horas y 365 días del año para mejorar tu experiencia en la comunidad.

Seguimos trabajando para brindarte le mejor experiencia en Nube Colectiva.
Social
Redes Sociales (Developers)
Redes Sociales (Digital)