Recursos para Desarrolladores y Fragmentos de Código
Aquí puedes encontrar ejemplos de código para trabajar con marcas de tiempo Unix en diferentes lenguajes de programación. Selecciona un lenguaje de las opciones a continuación:
Fragmentos de marca de tiempo Unix por lenguaje
Aquí puedes encontrar ejemplos de código para trabajar con marcas de tiempo Unix en diferentes lenguajes de programación. Selecciona un lenguaje de las opciones a continuación:
Herramientas relacionadas: Epoch Convertirer, Date Convertirer, Unix ms to Date, Convertidor de zonas horarias
Preguntas frecuentes
How do I get the current Unix timestamp in JavaScript? Use Math.floor(Date.now() / 1000) for Unix seconds or Date.now() for Unix milliseconds in JavaScript.
How do I convert epoch to datetime in Python, PHP, or SQL? Use the language-specific examples on this page to parse Unix timestamps into UTC or local datetime output for debugging, APIs, and database work.
What is the difference between Unix seconds and Unix milliseconds in code? Unix seconds are usually 10 digits and are common in backend systems. Unix milliseconds are usually 13 digits and are common in JavaScript, analytics, and browser events.
Obtener la marca de tiempo actual
// Get current Unix timestamp (seconds)
const timestampInSegundos = Math.floor(Date.now() / 1000);
console.log(timestampInSegundos);
// Get current Unix timestamp (milliseconds)
const timestampInMilisegundos = Date.now();
console.log(timestampInMilisegundos);
Convertir marca de tiempo a fecha
// Convertir Unix timestamp to date
const timestamp = 1609459200; // 2021-01-01 00:00:00 UTC
const date = new Date(timestamp * 1000);
console.log(date.toISOString()); // "2021-01-01T00:00:00.000Z"
console.log(date.toLocaleString()); // Localized format
Convertir fecha a marca de tiempo
// Convertir date string to Unix timestamp
const dateString = '2021-01-01T00:00:00Z';
const timestamp = Math.floor(new Date(dateString).getTime() / 1000);
console.log(timestamp); // 1609459200
// Convertir Date object to Unix timestamp
const date = new Date(2021, 0, 1); // Nota: months start at 0
const timestampFromDate = Math.floor(date.getTime() / 1000);
console.log(timestampFromDate);
Nota:
Date.now() de JavaScript devuelve milisegundos. Divida entre 1000 para obtener segundos.
Al convertir de segundos a un objeto Date, multiplique por 1000.
Obtener la marca de tiempo actual
import time
import datetime
# Get current Unix timestamp (seconds)
timestamp_seconds = int(time.time())
print(timestamp_seconds)
# Get current Unix timestamp (milliseconds)
timestamp_milliseconds = int(time.time() * 1000)
print(timestamp_milliseconds)
# Using datetime
dt = datetime.datetime.now()
timestamp_from_datetime = int(dt.timestamp())
print(timestamp_from_datetime)
Convertir marca de tiempo a fecha
import time
import datetime
# Convertir Unix timestamp to date
timestamp = 1609459200 # 2021-01-01 00:00:00 UTC
# Using time module
date_str = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(timestamp))
print(date_str) # '2021-01-01 00:00:00'
# Using datetime module
date_obj = datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone.utc)
print(date_obj.strftime('%Y-%m-%d %H:%M:%S')) # '2021-01-01 00:00:00'
Convertir fecha a marca de tiempo
import datetime
# Convertir date string to Unix timestamp
date_string = '2021-01-01 00:00:00'
date_obj = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
# Convertir to timestamp (assumes local timezone)
timestamp = int(date_obj.timestamp())
print(timestamp)
# Explicitly specify UTC timezone
date_obj_utc = date_obj.replace(tzinfo=datetime.timezone.utc)
timestamp_utc = int(date_obj_utc.timestamp())
print(timestamp_utc)
Nota:
time.time() de Python devuelve segundos en coma flotante. Use int() para segundos enteros.
Para manejar zonas horarias, considere usar la biblioteca pytz para un soporte más sólido.
Obtener la marca de tiempo actual
import java.time.Instant;
public class TimestampExample {
public static void main(String[] args) {
// Get current Unix timestamp (seconds)
long timestampInSegundos = Instant.now().getEpochSecond();
System.out.println(timestampInSegundos);
// Get current Unix timestamp (milliseconds)
long timestampInMilisegundos = Instant.now().toEpochMilli();
System.out.println(timestampInMilisegundos);
// Traditional method
long currentTimeMillis = System.currentTimeMillis();
long timestampSegundos = currentTimeMillis / 1000L;
System.out.println(timestampSegundos);
}
}
Convertir marca de tiempo a fecha
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class TimestampToDateExample {
public static void main(String[] args) {
// Convertir Unix timestamp to date
long timestamp = 1609459200L; // 2021-01-01 00:00:00 UTC
// Using Instant and formatter
Instant instant = Instant.ofEpochSecond(timestamp);
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd HH:mm:ss")
.withZone(ZoneId.of("UTC"));
String formattedDate = formatter.format(instant);
System.out.println(formattedDate); // "2021-01-01 00:00:00"
}
}
Convertir fecha a marca de tiempo
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class DateToTimestampExample {
public static void main(String[] args) {
// Convertir date string to Unix timestamp
String dateString = "2021-01-01 00:00:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// Parse and convert to timestamp (assuming UTC)
LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
ZonedDateTime zonedDateTime = dateTime.atZone(ZoneId.of("UTC"));
long timestamp = zonedDateTime.toEpochSecond();
System.out.println(timestamp); // 1609459200
}
}
Nota:
Java 8+ introdujo el paquete java.time con un mejor manejo de fecha y hora.
Use Instant para marcas de tiempo UTC y ZonedDateTime para operaciones con zona horaria.
Obtener la marca de tiempo actual
<?php
// Get current Unix timestamp (seconds)
$timestampInSegundos = time();
echo $timestampInSegundos;
// Get current Unix timestamp (milliseconds)
$timestampInMilisegundos = round(microtime(true) * 1000);
echo $timestampInMilisegundos;
// Using DateTime class
$dateTime = new DateTime();
$timestampFromDateTime = $dateTime->getTimestamp();
echo $timestampFromDateTime;
?>
Convertir marca de tiempo a fecha
<?php
// Convertir Unix timestamp to date
$timestamp = 1609459200; // 2021-01-01 00:00:00 UTC
// Using date function (local timezone)
$dateFormatted = date('Y-m-d H:i:s', $timestamp);
echo $dateFormatted;
// Using gmdate for UTC
$dateFormattedUTC = gmdate('Y-m-d H:i:s', $timestamp);
echo $dateFormattedUTC; // "2021-01-01 00:00:00"
// Using DateTime class
$dateTime = new DateTime("@$timestamp");
$dateTime->setTimezone(new DateTimeZone('UTC'));
echo $dateTime->format('Y-m-d H:i:s');
?>
Convertir fecha a marca de tiempo
<?php
// Convertir date string to Unix timestamp
$dateString = '2021-01-01 00:00:00';
// Using strtotime (assumes local timezone)
$timestamp = strtotime($dateString);
echo $timestamp;
// Specify UTC timezone
$timestampUTC = strtotime($dateString . ' UTC');
echo $timestampUTC;
// Using DateTime class with timezone
$dateTime = new DateTime($dateString, new DateTimeZone('UTC'));
$timestamp = $dateTime->getTimestamp();
echo $timestamp; // 1609459200
?>
Nota:
time() de PHP devuelve segundos. Use microtime(true) para segundos fraccionarios.
Tenga en cuenta la configuración de zona horaria al usar las funciones date() y strtotime().
Obtener la marca de tiempo actual
package main
import (
"fmt"
"time"
)
func main() {
// Get current Unix timestamp (seconds)
timestampInSegundos := time.Now().Unix()
fmt.Println(timestampInSegundos)
// Get current Unix timestamp (milliseconds)
// UnixMilli() requires Go 1.17+, using UnixNano() for better compatibility
timestampInMilisegundos := time.Now().UnixNano() / int64(time.Millisecond)
fmt.Println(timestampInMilisegundos)
}
Convertir marca de tiempo a fecha
package main
import (
"fmt"
"time"
)
func main() {
// Convertir Unix timestamp to date
timestamp := int64(1609459200) // 2021-01-01 00:00:00 UTC
// Create time object
t := time.Unix(timestamp, 0)
// Format date (UTC)
fmt.Println(t.UTC().Format("2006-01-02 15:04:05"))
// Format date (local timezone)
fmt.Println(t.Format("2006-01-02 15:04:05"))
}
Convertir fecha a marca de tiempo
package main
import (
"fmt"
"time"
)
func main() {
// Convertir date string to Unix timestamp
dateString := "2021-01-01 00:00:00"
// Parse date string (assuming UTC)
// Go uses the reference time "2006-01-02 15:04:05" for time formatting layouts
t, err := time.Parse("2006-01-02 15:04:05", dateString)
if err != nil {
fmt.Println(err)
return
}
// Get Unix timestamp
timestamp := t.Unix()
fmt.Printf("Timestamp: %d\n", timestamp) // 1609459200
}
Nota:
Go usa la hora de referencia "2006-01-02 15:04:05" para los diseños de formato de hora.
Use time.Now().Unix() para segundos y time.Now().UnixMilli() para milisegundos (Go 1.17+).
Obtener la marca de tiempo actual
using System;
class Program
{
static void Main()
{
// Get current Unix timestamp (seconds)
DateTimeOffset now = DateTimeOffset.UtcNow;
long timestampInSegundos = now.ToUnixTimeSegundos();
Console.WriteLine(timestampInSegundos);
// Get current Unix timestamp (milliseconds)
long timestampInMilisegundos = now.ToUnixTimeMilisegundos();
Console.WriteLine(timestampInMilisegundos);
// Alternative method for older .NET versions
DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
TimeSpan timeSpan = DateTime.UtcNow - unixEpoch;
long timestampSegundosAlt = (long)timeSpan.TotalSegundos;
Console.WriteLine(timestampSegundosAlt);
}
}
Convertir marca de tiempo a fecha
using System;
class Program
{
static void Main()
{
// Convertir Unix timestamp to date
long timestamp = 1609459200; // 2021-01-01 00:00:00 UTC
// Using DateTimeOffset (.NET Standard 2.0+)
DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSegundos(timestamp);
Console.WriteLine(dateTimeOffset.ToString("yyyy-MM-dd HH:mm:ss")); // UTC
// Convertir to local time
DateTimeOffset localTime = dateTimeOffset.ToLocalTime();
Console.WriteLine(localTime.ToString("yyyy-MM-dd HH:mm:ss")); // Local
}
}
Convertir fecha a marca de tiempo
using System;
using System.Globalization;
class Program
{
static void Main()
{
// Convertir date string to Unix timestamp
string dateString = "2021-01-01 00:00:00";
// Parse date string (assume UTC)
DateTime dateTime = DateTime.ParseExact(
dateString,
"yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
// Convertir to timestamp
DateTimeOffset dateTimeOffset = new DateTimeOffset(dateTime);
long timestamp = dateTimeOffset.ToUnixTimeSegundos();
Console.WriteLine($"Timestamp: {timestamp}"); // 1609459200
}
}
Nota:
Use DateTimeOffset para operaciones con marcas de tiempo Unix en .NET Standard 2.0+.
Tenga cuidado con DateTimeKind al trabajar con objetos DateTime.
Obtener la marca de tiempo actual
# Get current Unix timestamp (seconds)
timestamp_seconds = Time.now.to_i
puts timestamp_seconds
# Get current Unix timestamp (milliseconds)
timestamp_milliseconds = (Time.now.to_f * 1000).to_i
puts timestamp_milliseconds
# Get current UTC timestamp
require 'time'
utc_timestamp = Time.now.utc.to_i
puts utc_timestamp
Convertir marca de tiempo a fecha
require 'time'
# Convertir Unix timestamp to date
timestamp = 1609459200 # 2021-01-01 00:00:00 UTC
# Create Time object (local timezone)
time = Time.at(timestamp)
puts time.strftime('%Y-%m-%d %H:%M:%S')
# Create UTC Time object
time_utc = Time.at(timestamp).utc
puts time_utc.strftime('%Y-%m-%d %H:%M:%S') # "2021-01-01 00:00:00"
# ISO 8601 format
puts time_utc.iso8601
Convertir fecha a marca de tiempo
require 'time'
# Convertir date string to Unix timestamp
date_string = '2021-01-01 00:00:00'
# Parse date string (local timezone)
time = Time.parse(date_string)
timestamp = time.to_i
puts timestamp
# Parse date string as UTC
time_utc = Time.parse(date_string + ' UTC')
timestamp_utc = time_utc.to_i
puts timestamp_utc # 1609459200
# More precise parsing
require 'date'
datetime = DateTime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
timestamp_from_datetime = datetime.to_time.to_i
puts timestamp_from_datetime
Nota:
Time.now.to_i de Ruby devuelve segundos. Use (Time.now.to_f * 1000).to_i para milisegundos.
Para un manejo complejo de zonas horarias, considere usar la gema tzinfo.
Obtener la marca de tiempo actual
-- MySQL
SELECT UNIX_TIMESTAMP() AS current_timestamp;
SELECT UNIX_TIMESTAMP(NOW(3)) * 1000 AS current_timestamp_ms;
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW()) AS current_timestamp;
SELECT EXTRACT(EPOCH FROM NOW()) * 1000 AS current_timestamp_ms;
-- SQLite
SELECT STRFTIME('%s', 'now') AS current_timestamp;
SELECT STRFTIME('%s', 'now') * 1000 AS current_timestamp_ms;
-- SQL Server
SELECT DATEDIFF(SECOND, '1970-01-01', GETUTCDATE()) AS current_timestamp;
SELECT DATEDIFF(MILLISECOND, '1970-01-01', GETUTCDATE()) AS current_timestamp_ms;
Convertir marca de tiempo a fecha
-- MySQL
SELECT FROM_UNIXTIME(1609459200) AS datetime;
SELECT FROM_UNIXTIME(1609459200, '%Y-%m-%d %H:%i:%s') AS formatted_datetime;
-- PostgreSQL
SELECT TO_TIMESTAMP(1609459200) AS datetime;
SELECT TO_CHAR(TO_TIMESTAMP(1609459200), 'YYYY-MM-DD HH24:MI:SS') AS formatted_datetime;
-- SQLite
SELECT DATETIME(1609459200, 'unixepoch') AS datetime;
SELECT STRFTIME('%Y-%m-%d %H:%M:%S', 1609459200, 'unixepoch') AS formatted_datetime;
-- SQL Server
SELECT DATEADD(SECOND, 1609459200, '1970-01-01') AS datetime;
Convertir fecha a marca de tiempo
-- MySQL
SELECT UNIX_TIMESTAMP('2021-01-01 00:00:00') AS timestamp;
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2021-01-01 00:00:00') AS timestamp;
-- SQLite
SELECT STRFTIME('%s', '2021-01-01 00:00:00') AS timestamp;
-- SQL Server
SELECT DATEDIFF(SECOND, '1970-01-01', '2021-01-01 00:00:00') AS timestamp;
Nota:
Los distintos sistemas de bases de datos tienen funciones diferentes para manejar marcas de tiempo.
Considere siempre las implicaciones de la zona horaria al trabajar con marcas de tiempo en bases de datos.
Obtener la marca de tiempo actual
' Get current Unix timestamp (seconds)
=INT((NOW()-DATE(1970,1,1))*86400)
' Get current Unix timestamp (milliseconds)
=INT((NOW()-DATE(1970,1,1))*86400*1000)
' Get timestamp for date in cell A1
=INT((A1-DATE(1970,1,1))*86400)
' Account for timezone (subtract 8 hours for UTC+8)
=INT((NOW()-DATE(1970,1,1)-TIME(8,0,0))*86400)
Convertir marca de tiempo a fecha
' Convertir Unix timestamp (seconds) to Excel date
' Assuming A1 contains the timestamp
=DATE(1970,1,1)+A1/86400
' Convertir Unix timestamp (milliseconds) to Excel date
=DATE(1970,1,1)+A1/86400/1000
' Convertir to local timezone (add 8 hours for UTC+8)
=DATE(1970,1,1)+A1/86400+TIME(8,0,0)
' Format as text
=TEXT(DATE(1970,1,1)+A1/86400,"yyyy-mm-dd hh:mm:ss")
VBA Functions
' Convertir Unix timestamp to Excel date
Function UnixToExcelDate(UnixTimestamp As Long) As Date
UnixToExcelDate = DateAdd("s", UnixTimestamp, DateSerial(1970, 1, 1))
End Function
' Convertir Excel date to Unix timestamp
Function ExcelDateToUnix(ExcelDate As Date) As Long
ExcelDateToUnix = DateDiff("s", DateSerial(1970, 1, 1), ExcelDate)
End Function
' Get current Unix timestamp
Function GetCurrentUnixTimestamp() As Long
GetCurrentUnixTimestamp = DateDiff("s", DateSerial(1970, 1, 1), Now)
End Function
' Usage examples:
' =UnixToExcelDate(1609459200)
' =ExcelDateToUnix(NOW())
' =GetCurrentUnixTimestamp()
Nota:
Excel stores dates as serial numbers, with 1970-01-01 being day 25569 in the 1900 date system.
Always consider timezone conversions when working with timestamps in Excel.
VBA functions provide more flexibility for complex timestamp operations.