utc now / zones / havana

Havana time zone — UTC-04:00 right now (CDT)

Havana, Cuba, is currently on CDT (UTC-04:00) — 4 hours behind UTC. Use America/Havana in code, never the abbreviation and never a hard-coded offset.

Havana · America/Havana
01:34:25
Thursday, 13 August 2026 · CDT · UTC-04:00 · DST
vs
Coordinated Universal Time · UTC
05:34:25
Thursday, 13 August 2026 · UTC · UTC+00:00

The identifier to put in your code

IANA time zone identifier
America/Havana
GET /api/now/America/Havana

CDT is a label, not an identifier. Abbreviations are unregistered, they collide across regions, and no date library resolves them reliably. The IANA name carries the full history of this place's offset and daylight-saving rule changes, so code written against it keeps working when a government moves the clocks.

This page also answers to HAV — every one of them redirects here.

Daylight saving

America/Havana is on CDT (UTC-04:00) — its daylight-saving clock.

next change: Sunday, 1 November 2026, 00:00 local → CST (79 days away, clocks go back 60 minutes)

Computed from the IANA tz database at the moment you loaded this page, not from a date we typed in — if the rules change, this line changes with them.

A timestamp from Havana, in every format rendered in this zone · copy any row

FormatValueCopy
ISO 8601 (local, with offset)
What a timestamp from this zone should look like
2026-08-13T01:34:25-04:00
RFC 3339 (local)
The JSON-API form, offset preserved
2026-08-13T01:34:25-04:00
ISO 8601 (UTC)
The same instant, normalised to UTC
2026-08-13T05:34:25Z
Unix timestamp
Identical everywhere — epoch time has no timezone
1786599265
Unix milliseconds
Also zone-independent
1786599265947
RFC 2822 (local)
Email Date: header from this zone
Thu, 13 Aug 2026 01:34:25 -0400
Date (local)
Calendar date here, which can differ from UTC
2026-08-13
Time (local, 24-hour)
Wall-clock time here
01:34:25
Time (local, 12-hour)
Wall-clock time with AM/PM
01:34:25 AM
UTC offset
Current offset, including any daylight saving
-04:00
IANA identifier
The only form you should hard-code
America/Havana
ISO week date (local)
Year-week-weekday here
2026-W33-4
The Unix timestamp does not change here. Epoch time counts seconds since 1970-01-01T00:00:00Z and is the same integer at the same instant everywhere on Earth. Only the rendering above is local — which is exactly why storing epoch integers makes timezone bugs disappear, and storing bare local strings creates them.

Get the current time in Havana using the IANA name

Python
from datetime import datetime
from zoneinfo import ZoneInfo

now = datetime.now(ZoneInfo("America/Havana"))
print(now.isoformat())      # local time with offset
print(now.tzname())         # current abbreviation
print(int(now.timestamp())) # unix — same number everywhere
JavaScript
const tz = 'America/Havana';
const now = new Date();
console.log(now.toLocaleString('en-GB', { timeZone: tz }));
// ISO 8601 with the zone's offset:
console.log(new Intl.DateTimeFormat('sv-SE', { timeZone: tz,
  dateStyle: 'short', timeStyle: 'medium' }).format(now));
Go
loc, err := time.LoadLocation("America/Havana")
if err != nil { log.Fatal(err) }
now := time.Now().In(loc)
fmt.Println(now.Format(time.RFC3339))
Java
import java.time.*;

ZonedDateTime now = ZonedDateTime.now(ZoneId.of("America/Havana"));
System.out.println(now);                  // with offset
System.out.println(now.toInstant());      // UTC instant
C#
var tz = TimeZoneInfo.FindSystemTimeZoneById("America/Havana");
var now = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tz);
Console.WriteLine(now.ToString("o"));
Rust
// chrono = "0.4", chrono-tz = "0.9"
use chrono::Utc;
use chrono_tz::Tz;

let tz: Tz = "America/Havana".parse().unwrap();
let now = Utc::now().with_timezone(&tz);
println!("{}", now.to_rfc3339());
PHP
$now = new DateTimeImmutable('now', new DateTimeZone('America/Havana'));
echo $now->format(DATE_ATOM), PHP_EOL;
SQL — PostgreSQL
SELECT now() AT TIME ZONE 'America/Havana' AS local_time,
       extract(epoch FROM now())::bigint AS unix_seconds;
Bash
TZ='America/Havana' date +"%Y-%m-%dT%H:%M:%S%z"
TZ='America/Havana' date          # human readable

Convert

Looking for sunrise, day length or a meeting overlap? That is the consumer view, and it lives on our sibling site. worldclock.free/havana. This page stays focused on offsets, identifiers and formats.

Havana time zone questions

What is the UTC offset in Havana right now?
Havana is UTC-04:00 — 4 hours behind UTC. The abbreviation currently in force is CDT, and the local time is 01:34 on Thursday, 13 August 2026.
Which timezone identifier should I use for Havana in code?
America/Havana. Pass that string to ZoneInfo in Python, ZoneId.of in Java, time.LoadLocation in Go, or the timeZone option of Intl.DateTimeFormat in JavaScript. Do not store UTC-04:00 as a fixed offset and do not store the abbreviation CDT — the offset changes with the seasons and with the law, and the identifier is what carries those rules.
When do the clocks next change in Havana?
On Sunday, 01 November 2026 at 00:00 local time, 79 days from now, when the clocks go back 60 minutes and the zone switches to CST (UTC-05:00). That date comes from the current IANA tzdata rules, so it tracks any change in the law rather than a value we typed in.
Does the Unix timestamp change in Havana?
No — and this is the most common misconception about timezones. A Unix timestamp counts seconds since 1970-01-01T00:00:00Z and is the same integer at the same instant everywhere on Earth. Only the rendering changes. If your database stores an epoch integer you have no timezone problem; if it stores '2026-01-01 09:00:00' with no offset, you do.
What airport and city codes point at Havana?
This page also answers to HAV. They all redirect here, because Havana has one canonical page rather than one per code.

Keyboard shortcuts

cCopy the ISO 8601 timestamp
uCopy the Unix timestamp
/Focus the timezone search
tToggle light and dark
?This help
EscClose