Unix to ISO 8601 Converter

Current Time

1737565645 Unix Timestamp
2025-01-22T17:07:25+00:00 ISO 8601
2025-01-22T12:07:25-05:00 In Your Timezone

Unix to ISO 8601

ISO 8601 to Unix

ISO 8601 Date Format and Unix Time

Welcome to your comprehensive guide on converting between Unix timestamps and ISO 8601 format!

What is ISO 8601?

ISO 8601 is an international standard for representing dates and times. It was designed to eliminate ambiguity in international date and time representations, making it ideal for global data exchange and computer systems.

Key features of ISO 8601:

  • Year-Month-Day order: Dates follow the format YYYY-MM-DD
  • 24-hour clock: Times use the 24-hour format HH:MM:SS
  • Time zone indication: Uses Z for UTC or ±HH:MM for offsets
  • Decimal fractions: Supports decimal places for sub-second precision

Common ISO 8601 Formats

Format Example Description
Date only
YYYY-MM-DD
2024-01-25 Basic date format
Date and time (UTC)
YYYY-MM-DDThh:mm:ssZ
2024-01-25T13:45:30Z Full timestamp in UTC
With timezone offset
YYYY-MM-DDThh:mm:ss±hh:mm
2024-01-25T13:45:30+01:00 Timestamp with timezone
With UTC offset (basic)
YYYY-MM-DDThh:mm:ss±hhmm
2024-01-25T13:45:30+0100 Compact timezone format
With UTC offset (extended)
YYYY-MM-DDThh:mm:ss±hh:mm
2024-01-25T13:45:30-05:00 New York (EST) example
With milliseconds
YYYY-MM-DDThh:mm:ss.sssZ
2024-01-25T13:45:30.123Z High precision timestamp

UTC Offset Examples

  • +00:00 or Z - UTC (Zero offset)
  • -05:00 - Eastern Time (New York)
  • +01:00 - Central European Time
  • +08:00 - China Standard Time
  • +09:30 - Australian Central Time

Note: The 'T' in the format is a literal character that separates the date from the time. The 'Z' at the end stands for 'Zulu time' (UTC).

What is Unix Time?

Unix time (also known as POSIX time or Unix timestamp) is a system for tracking time as a running total of seconds since the Unix Epoch - January 1st, 1970 at 00:00:00 UTC.

Key characteristics of Unix timestamps:

  • Simple integer format: Represented as the number of seconds elapsed
  • UTC based: Always represents time in UTC, no timezone complications
  • Compact storage: Efficient for databases and computing
  • Y2K38 consideration: 32-bit systems may experience overflow in 2038

Unix timestamps are widely used in programming and system logs because they're easy to store and transmit, simple to perform date/time calculations with, independent of timezone and locale settings, and universally understood across different platforms.

Converting Between Formats

Unix to ISO 8601

Converting from Unix timestamp to ISO 8601 involves:

  • Multiplying the Unix timestamp by 1000 (to account for milliseconds)
  • Creating a Date object from the milliseconds
  • Converting to ISO string format

ISO 8601 to Unix

Converting from ISO 8601 to Unix timestamp involves:

  • Parsing the ISO 8601 string into a Date object
  • Getting the timestamp in milliseconds
  • Dividing by 1000 to get seconds

Code Examples

JavaScript Unix Timestamp to ISO 8601 Converter Code Example

// Using native JavaScript
const unixTimestamp = 1706189130;
const date = new Date(unixTimestamp * 1000);
const iso8601 = date.toISOString();
console.log(iso8601); // "2024-01-25T13:45:30.000Z"

// Using date-fns-tz (recommended for timezone handling)
import { formatInTimeZone } from 'date-fns-tz'

// Unix to ISO 8601 with specific timezone
const timestamp = 1706189130;
const dateInNY = formatInTimeZone(
  timestamp * 1000,
  'America/New_York',
  "yyyy-MM-dd'T'HH:mm:ssXXX"
);
console.log(dateInNY); // "2024-01-25T08:45:30-05:00"

// ISO 8601 to Unix
const isoDate = "2024-01-25T13:45:30Z";
const timestamp = Math.floor(new Date(isoDate).getTime() / 1000);
console.log(timestamp); // 1706189130

Python Unix Timestamp to ISO 8601 Converter Code Example

from datetime import datetime
import time

# Unix to ISO 8601
unix_timestamp = 1706189130
iso_date = datetime.utcfromtimestamp(unix_timestamp).isoformat() + 'Z'
print(iso_date)  # "2024-01-25T13:45:30Z"

# ISO 8601 to Unix
iso_string = "2024-01-25T13:45:30Z"
timestamp = int(datetime.fromisoformat(iso_string.replace('Z', '+00:00')).timestamp())
print(timestamp)  # 1706189130

PHP Unix Timestamp to ISO 8601 Converter Code Example

// Unix to ISO 8601
$unixTimestamp = 1706189130;
$date = new DateTime("@$unixTimestamp");
$iso8601 = $date->format('c');
echo $iso8601; // "2024-01-25T13:45:30+00:00"

// ISO 8601 to Unix
$isoString = "2024-01-25T13:45:30Z";
$timestamp = strtotime($isoString);
echo $timestamp; // 1706189130

Java Unix Timestamp to ISO 8601 Converter Code Example

import java.time.Instant;
import java.time.format.DateTimeFormatter;

// Unix to ISO 8601
long unixTimestamp = 1706189130L;
String iso8601 = Instant.ofEpochSecond(unixTimestamp)
    .toString();
System.out.println(iso8601); // "2024-01-25T13:45:30Z"

// ISO 8601 to Unix
String isoString = "2024-01-25T13:45:30Z";
long timestamp = Instant.parse(isoString)
    .getEpochSecond();
System.out.println(timestamp); // 1706189130

Ruby Unix Timestamp to ISO 8601 Converter Code Example

require 'time'

# Unix to ISO 8601
unix_timestamp = 1706189130
iso_date = Time.at(unix_timestamp).utc.iso8601
puts iso_date  # "2024-01-25T13:45:30Z"

# ISO 8601 to Unix
iso_string = "2024-01-25T13:45:30Z"
timestamp = Time.iso8601(iso_string).to_i
puts timestamp  # 1706189130

Convert Unix Timestamp to ISO 8601 in DGLux5

// Note: DGLux5 lacks native timestamp conversion functions
// Use JavaScript methods within DGLux5's scripting environment
// for Unix/ISO 8601 conversions

// Unix to ISO 8601
function unixToISO(timestamp) {
    return new Date(timestamp * 1000).toISOString();
}

// ISO 8601 to Unix
function isoToUnix(isoString) {
    return Math.floor(new Date(isoString).getTime() / 1000);
}

// Example usage in DGLux5 JavaScript action
var timestamp = 1706189130;
var isoDate = unixToISO(timestamp);  // "2024-01-25T13:45:30.000Z"

Convert Unix Timestamp to ISO 8601 in Niagara 4

// Baja script to convert Unix timestamp to ISO 8601
import javax.baja.sys.BAbsTime
import javax.baja.sys.BRelTime
import javax.baja.sys.BTimeZone
import java.time.Instant
import java.time.format.DateTimeFormatter

// Unix to ISO 8601
def unixToIso(long timestamp) {
  def instant = Instant.ofEpochSecond(timestamp)
  return instant.toString() // Returns in ISO 8601 format
}

// ISO 8601 to Unix
def isoToUnix(String isoDate) {
  def instant = Instant.parse(isoDate)
  return instant.epochSecond
}

// Example usage:
def timestamp = 1706189130
def isoDate = unixToIso(timestamp)
println isoDate  // Prints: 2024-01-25T13:45:30Z

// Using BAbsTime (Niagara's native time handling)
def absTime = BAbsTime.make(timestamp * 1000)
println absTime.encodeToString() // Niagara's formatted time

Rust Unix Timestamp to ISO 8601 Converter Code Example

use chrono::{DateTime, TimeZone, Utc};

// Unix to ISO 8601
fn unix_to_iso(timestamp: i64) -> String {
    let dt = Utc.timestamp_opt(timestamp, 0).unwrap();
    dt.to_rfc3339()  // Returns ISO 8601 format
}

// ISO 8601 to Unix
fn iso_to_unix(iso_string: &str) -> Result {
    let dt = DateTime::parse_from_rfc3339(iso_string)?;
    Ok(dt.timestamp())
}

fn main() {
    // Example usage
    let timestamp = 1706189130;
    let iso_date = unix_to_iso(timestamp);
    println!("{}", iso_date); // Prints: "2024-01-25T13:45:30+00:00"

    // Converting back
    let unix_time = iso_to_unix(&iso_date).unwrap();
    println!("{}", unix_time); // Prints: 1706189130
}

Common Use Cases

Both Unix timestamps and ISO 8601 have specific use cases where they excel. Here are some common scenarios:

Data Exchange

When exchanging data between systems, ISO 8601 is preferred because:

  • It maintains timezone context
  • It's self-documenting
  • It's widely supported across programming languages
  • It follows an international standard format

API Integration

ISO 8601 is widely used in APIs because:

  • It's human-readable and machine-parseable
  • It includes timezone information
  • It's an international standard
  • It avoids ambiguity in date formats

Database Storage

Unix timestamps are often preferred for storage because:

  • They're compact and efficient
  • They're timezone-independent
  • They make date calculations easier
  • They're supported by most databases

Best Practices

When deciding between Unix timestamps and ISO 8601, consider the following scenarios:

Scenario Recommended Format Reason
API Responses
External communication
ISO 8601 Universal readability and timezone clarity
Database Storage
Internal storage
Unix Timestamp Efficient storage and calculations
User Interface
Display to users
Localized Format Better user experience
Logging
System records
ISO 8601 Debug-friendly and timezone aware

Common Pitfalls

When working with Unix timestamps and ISO 8601, there are several common pitfalls to be aware of. Understanding these challenges helps prevent bugs and ensures reliable date/time handling in your applications:

Timezone Handling

Common issues to watch out for:

  • Not specifying timezone in ISO 8601 strings
  • Assuming Unix timestamps are in local time
  • Incorrect timezone conversions
  • Not handling daylight saving time

Precision Issues

Be careful with:

  • Millisecond vs second precision in Unix timestamps
  • Truncated decimal places in ISO 8601
  • 32-bit vs 64-bit timestamp limitations
  • Different precision requirements across systems

Related Standards

While ISO 8601 and Unix timestamps are widely used, there are other important time formats to consider:

  • RFC 3339: A profile of ISO 8601 commonly used in Internet protocols
  • RFC 2822: Used in email headers and other Internet messages
  • W3C DateTime: A subset of ISO 8601 used in web technologies
  • SQL DateTime: Various database-specific implementations

Tools and Libraries

We highly recommend these battle-tested libraries for handling date/time conversions in your preferred programming language:

Weeks from today

Days from today

Months from today

Weeks ago

Days ago

Months ago

Hours ago

Hours from now

Minutes ago

Minutes from now