Developer & Data

Understanding Unix Epoch Timestamps, ISO-8601 Timezones, and Cron Job Expressions

Master 10-digit vs 13-digit Unix epoch timestamps, the Year 2038 32-bit overflow, IANA timezone conversions (UTC, IST, EST/EDT), and 5-field cron syntax.

By EverySolve Editorial Team • Published: • 8 min read

Distributed databases, JWT authentication tokens, server log files, and scheduled background jobs all depend on a single unambiguous representation of time. Storing human-formatted local strings like 03/04/2026 02:30 PM quickly causes bugs across regions because of ambiguous date ordering (MM/DD vs DD/MM) and Daylight Saving Time (DST) transitions. Modern software engineering solves this with Unix Epoch Timestamps, ISO-8601 UTC strings, and IANA Timezone identifiers.


1. What Is the Unix Epoch (1970-01-01T00:00:00Z)?

Under IEEE Std 1003.1 (POSIX), a Unix timestamp counts the number of elapsed seconds since the Unix Epoch: 00:00:00 UTC on 1 January 1970 (excluding leap seconds). Because it is anchored strictly to Coordinated Universal Time (UTC), a Unix timestamp is identical at any given instant whether your server runs in Mumbai, Frankfurt, or Virginia.

10-Digit Seconds vs. 13-Digit Milliseconds

One of the most frequent bugs when integrating APIs is mixing seconds and milliseconds:

PrecisionDigit Count (Current Era)Example Value (2026-10-23T00:00:00Z)Common Languages / APIs
Seconds10 digits1792713600Unix/POSIX, Python time.time(), PHP time(), Go time.Now().Unix(), JWT exp / iat claims, PostgreSQL
Milliseconds13 digits1792713600000JavaScript Date.now(), Java System.currentTimeMillis(), Stripe webhooks (some SDKs), MongoDB BSON Date

If a JavaScript frontend passes a 10-digit Unix timestamp (1792713600) directly into new Date(1792713600) without multiplying by 1000, JavaScript interprets it as 1.79 billion *milliseconds* after Jan 1, 1970—rendering a date in January 1970! Conversely, passing a 13-digit millisecond timestamp to a library expecting seconds yields a year past 58,000 CE.

Convert both 10-digit (seconds) and 13-digit (milliseconds) epoch integers into human-readable UTC, local time, and ISO-8601 strings instantly using the EverySolve Unix Timestamp Converter.


2. The Year 2038 Problem (2,147,483,647)

Legacy systems that store Unix timestamps in a signed 32-bit integer (int32) can represent a maximum positive value of:

2^{31} - 1 = 2,147,483,647 seconds

Adding 2,147,483,647 seconds to 1970-01-01T00:00:00Z reaches 03:14:07 UTC on 19 January 2038. One second later, a signed 32-bit integer overflows to -2,147,483,648, which corresponds to 13 December 1901. Modern 64-bit operating systems, databases (BIGINT / TIMESTAMPTZ), and application runtimes store timestamps as 64-bit integers, pushing the overflow horizon out by ~292 billion years. However, embedded IoT firmware, 32-bit binary file formats, and legacy SQL columns calculating 15-to-30-year mortgage or bond maturities must already use 64-bit date types today.


3. ISO-8601 Strings and IANA Timezone Offsets

When exchanging human-readable timestamps in JSON payloads, ISO-8601 (RFC 3339) is the universal standard:

  • UTC Zero Offset: 2026-10-23T09:00:00Z (where Z stands for Zulu / UTC+00:00).
  • Indian Standard Time (IST / Asia/Kolkata): 2026-10-23T14:30:00+05:30 (India observes a single year-round half-hour offset of UTC+05:30 with no Daylight Saving Time).
  • US Eastern Time (America/New_York): Shifts between EST (UTC-05:00) in winter and EDT (UTC-04:00) during Daylight Saving Time.
Best Practice for Multi-Region Meetings: Never hardcode fixed hour differences between India (Asia/Kolkata) and North America or Europe. Because the US and Europe shift their clocks twice a year while India remains at UTC+05:30, a 9:00 AM New York standup moves from 7:30 PM IST (winter EST) to 6:30 PM IST (summer EDT).

Compare live offsets and convert meeting times across global IANA zones (UTC, Asia/Kolkata, America/New_York, Europe/London, Asia/Tokyo, and more) with the EverySolve Timezone Converter.


4. Decoding 5-Field POSIX Cron Job Expressions

When scheduling automated server backups, database cleanups, or report emails, POSIX crontab syntax defines recurring schedules using 5 space-separated fields:

┌───────────── Minute (0 - 59)
│ ┌───────────── Hour (0 - 23)
│ │ ┌───────────── Day of the Month (1 - 31)
│ │ │ ┌───────────── Month (1 - 12)
│ │ │ │ ┌───────────── Day of the Week (0 - 6, Sunday = 0)
│ │ │ │ │
* * * * *

Special Cron Operators & Production Examples

Cron ExpressionOperator MeaningPlain-English Execution Schedule
*/15 * * * */ (Step value)Runs every 15 minutes (at :00, :15, :30, :45)
0 2 * * *Exact matchRuns daily at 02:00 AM server time
30 9 * * 1-5- (Range)Runs at 09:30 AM Monday through Friday (weekdays only)
0 0 1,15 * *, (List)Runs at midnight on the 1st and 15th of every month
0 3 * * 0Day of week 0Runs at 03:00 AM every Sunday

Before deploying a scheduled job to Linux cron, GitHub Actions, or Kubernetes CronJob, translate any 5-field expression into plain English and inspect its field-by-field breakdown with the EverySolve Cron Expression Parser.

For calendar math involving leap years, working-day intervals, and decimal payroll hours, read our guide on Everyday Date, Time & Health Calculators.

Standards & Technical References

  • IEEE Std 1003.1 (POSIX.1) — Base Definitions, Section 4.16: Seconds Since the Epoch — IEEE / The Open Group (Reference)
  • RFC 3339 — Date and Time on the Internet: Timestamps (ISO-8601 Profile) — Internet Engineering Task Force (IETF) (Reference)
  • Time Zone Database (tzdb / Olson Database) — Internet Assigned Numbers Authority (IANA) (Reference)
About the EverySolve Editorial Team & Technical Verification:

Epoch definitions, ISO-8601 representations, IANA timezone offsets, and POSIX crontab syntax verified against IEEE Std 1003.1 (POSIX.1), ISO 8601-1:2019, and the IANA Time Zone Database. EverySolve guides are written and maintained by our engineering and editorial team to document exact formulas, file-format standards, and browser-based workflows.

Editorial & Privacy Architecture → Spot an error? Suggest a correction →

Frequently Asked Questions

How can I quickly tell if a Unix timestamp is in seconds or milliseconds?

Count the digits. For dates between late 2001 and 2286, a timestamp in seconds has 10 digits (e.g., 1792713600), whereas a timestamp in milliseconds has 13 digits (e.g., 1792713600000).

Does Unix epoch time change when I travel to a different timezone?

No. A Unix timestamp always measures seconds elapsed since 1970-01-01T00:00:00Z (UTC). Timezones only affect how that integer is formatted into a local wall-clock string for display.

What timezone do GitHub Actions and cloud CronJobs use by default?

GitHub Actions scheduled workflows and most cloud-native cron schedulers evaluate 5-field cron expressions strictly in UTC (Coordinated Universal Time), whereas a Linux server's local crontab uses the host machine's configured system timezone unless CRON_TZ is set.

Related Online Tools

Related Guides & Tutorials

← Back to All Guides Explore All Tools →