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:
Get Current Timestamp
// Get current Unix timestamp (seconds)
const timestampInSeconds = Math.floor(Date.now() / 1000);
console.log(timestampInSeconds);
// Get current Unix timestamp (milliseconds)
const timestampInMilliseconds = Date.now();
console.log(timestampInMilliseconds);
Convert Timestamp to Date
// Convert 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
Convert Date to Timestamp
// Convert 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
// Convert Date object to Unix timestamp
const date = new Date(2021, 0, 1); // Note: months start at 0
const timestampFromDate = Math.floor(date.getTime() / 1000);
console.log(timestampFromDate);
Note:
JavaScript's Date.now() returns milliseconds. Divide by 1000 for seconds.
When converting from seconds to Date object, multiply by 1000.
Get Current Timestamp
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)
Convert Timestamp to Date
import time
import datetime
# Convert 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'
Convert Date to Timestamp
import datetime
# Convert 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')
# Convert 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)
Note:
Python's time.time() returns floating-point seconds. Use int() for whole seconds.
For timezone handling, consider using the pytz library for more robust timezone support.
Get Current Timestamp
import java.time.Instant;
public class TimestampExample {
public static void main(String[] args) {
// Get current Unix timestamp (seconds)
long timestampInSeconds = Instant.now().getEpochSecond();
System.out.println(timestampInSeconds);
// Get current Unix timestamp (milliseconds)
long timestampInMilliseconds = Instant.now().toEpochMilli();
System.out.println(timestampInMilliseconds);
// Traditional method
long currentTimeMillis = System.currentTimeMillis();
long timestampSeconds = currentTimeMillis / 1000L;
System.out.println(timestampSeconds);
}
}
Convert Timestamp to Date
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class TimestampToDateExample {
public static void main(String[] args) {
// Convert 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"
}
}
Convert Date to Timestamp
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) {
// Convert 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
}
}
Note:
Java 8+ introduced the java.time package with better date/time handling.
Use Instant for UTC timestamps and ZonedDateTime for timezone-aware operations.
Get Current Timestamp
<?php
// Get current Unix timestamp (seconds)
$timestampInSeconds = time();
echo $timestampInSeconds;
// Get current Unix timestamp (milliseconds)
$timestampInMilliseconds = round(microtime(true) * 1000);
echo $timestampInMilliseconds;
// Using DateTime class
$dateTime = new DateTime();
$timestampFromDateTime = $dateTime->getTimestamp();
echo $timestampFromDateTime;
?>
Convert Timestamp to Date
<?php
// Convert 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');
?>
Convert Date to Timestamp
<?php
// Convert 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
?>
Note:
PHP's time() returns seconds. Use microtime(true) for fractional seconds.
Be aware of timezone settings when using date() and strtotime() functions.
Get Current Timestamp
package main
import (
"fmt"
"time"
)
func main() {
// Get current Unix timestamp (seconds)
timestampInSeconds := time.Now().Unix()
fmt.Println(timestampInSeconds)
// Get current Unix timestamp (milliseconds)
// UnixMilli() requires Go 1.17+, using UnixNano() for better compatibility
timestampInMilliseconds := time.Now().UnixNano() / int64(time.Millisecond)
fmt.Println(timestampInMilliseconds)
}
Convert Timestamp to Date
package main
import (
"fmt"
"time"
)
func main() {
// Convert 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"))
}
Convert Date to Timestamp
package main
import (
"fmt"
"time"
)
func main() {
// Convert 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
}
Note:
Go uses the reference time "2006-01-02 15:04:05" for time formatting layouts.
Use time.Now().Unix() for seconds and time.Now().UnixMilli() for milliseconds (Go 1.17+).
Get Current Timestamp
using System;
class Program
{
static void Main()
{
// Get current Unix timestamp (seconds)
DateTimeOffset now = DateTimeOffset.UtcNow;
long timestampInSeconds = now.ToUnixTimeSeconds();
Console.WriteLine(timestampInSeconds);
// Get current Unix timestamp (milliseconds)
long timestampInMilliseconds = now.ToUnixTimeMilliseconds();
Console.WriteLine(timestampInMilliseconds);
// Alternative method for older .NET versions
DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
TimeSpan timeSpan = DateTime.UtcNow - unixEpoch;
long timestampSecondsAlt = (long)timeSpan.TotalSeconds;
Console.WriteLine(timestampSecondsAlt);
}
}
Convert Timestamp to Date
using System;
class Program
{
static void Main()
{
// Convert Unix timestamp to date
long timestamp = 1609459200; // 2021-01-01 00:00:00 UTC
// Using DateTimeOffset (.NET Standard 2.0+)
DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(timestamp);
Console.WriteLine(dateTimeOffset.ToString("yyyy-MM-dd HH:mm:ss")); // UTC
// Convert to local time
DateTimeOffset localTime = dateTimeOffset.ToLocalTime();
Console.WriteLine(localTime.ToString("yyyy-MM-dd HH:mm:ss")); // Local
}
}
Convert Date to Timestamp
using System;
using System.Globalization;
class Program
{
static void Main()
{
// Convert 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);
// Convert to timestamp
DateTimeOffset dateTimeOffset = new DateTimeOffset(dateTime);
long timestamp = dateTimeOffset.ToUnixTimeSeconds();
Console.WriteLine($"Timestamp: {timestamp}"); // 1609459200
}
}
Note:
Use DateTimeOffset for Unix timestamp operations in .NET Standard 2.0+.
Be careful with DateTimeKind when working with DateTime objects.
Get Current Timestamp
# 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
Convert Timestamp to Date
require 'time'
# Convert 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
Convert Date to Timestamp
require 'time'
# Convert 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
Note:
Ruby's Time.now.to_i returns seconds. Use (Time.now.to_f * 1000).to_i for milliseconds.
For complex timezone handling, consider using the tzinfo gem.
Get Current Timestamp
-- 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;
Convert Timestamp to Date
-- 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;
Convert Date to Timestamp
-- 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;
Note:
Different database systems have varying functions for timestamp handling.
Always consider timezone implications when working with timestamps in databases.
Get Current Timestamp
' 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)
Convert Timestamp to Date
' Convert Unix timestamp (seconds) to Excel date
' Assuming A1 contains the timestamp
=DATE(1970,1,1)+A1/86400
' Convert Unix timestamp (milliseconds) to Excel date
=DATE(1970,1,1)+A1/86400/1000
' Convert 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
' Convert Unix timestamp to Excel date
Function UnixToExcelDate(UnixTimestamp As Long) As Date
UnixToExcelDate = DateAdd("s", UnixTimestamp, DateSerial(1970, 1, 1))
End Function
' Convert 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()
Note:
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.