utc now / zones / rio de janeiro

Rio de Janeiro time zone — UTC-03:00 right now (UTC-03:00)

Rio de Janeiro, Brazil, is currently on UTC-03:00 (UTC-03:00) — 3 hours behind UTC. Use America/Sao_Paulo in code, never the abbreviation and never a hard-coded offset.

Rio de Janeiro · America/Sao_Paulo
03:40:47
Thursday, 13 August 2026 · UTC-03:00 · UTC-03:00
vs
Coordinated Universal Time · UTC
06:40:47
Thursday, 13 August 2026 · UTC · UTC+00:00

The identifier to put in your code

IANA time zone identifier
America/Sao_Paulo

UTC-03:00 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.

Shortcut: this page is utctime.app/rio-de-janeiro, and it also answers to /rio/gig/sdu — type any of them straight into the address bar. See every city and code →

Daylight saving

America/Sao_Paulo is on UTC-03:00 (UTC-03:00) — its standard clock.

no clock change scheduled — fixed at UTC-03:00 all year

Conversions involving this zone only shift when the other side changes its clocks.

A timestamp from Rio de Janeiro, 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-13T03:40:47-03:00
RFC 3339 (local)
The JSON-API form, offset preserved
2026-08-13T03:40:47-03:00
ISO 8601 (UTC)
The same instant, normalised to UTC
2026-08-13T06:40:47Z
Unix timestamp
Identical everywhere — epoch time has no timezone
1786603247
Unix milliseconds
Also zone-independent
1786603247288
RFC 2822 (local)
Email Date: header from this zone
Thu, 13 Aug 2026 03:40:47 -0300
Date (local)
Calendar date here, which can differ from UTC
2026-08-13
Time (local, 24-hour)
Wall-clock time here
03:40:47
Time (local, 12-hour)
Wall-clock time with AM/PM
03:40:47 AM
UTC offset
Current offset, including any daylight saving
-03:00
IANA identifier
The only form you should hard-code
America/Sao_Paulo
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 Rio de Janeiro using the IANA name

Python
from datetime import datetime
from zoneinfo import ZoneInfo

now = datetime.now(ZoneInfo("America/Sao_Paulo"))
print(now.isoformat())      # local time with offset
print(now.tzname())         # current abbreviation
print(int(now.timestamp())) # unix — same number everywhere
JavaScript
const tz = 'America/Sao_Paulo';
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/Sao_Paulo")
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/Sao_Paulo"));
System.out.println(now);                  // with offset
System.out.println(now.toInstant());      // UTC instant
C#
var tz = TimeZoneInfo.FindSystemTimeZoneById("America/Sao_Paulo");
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/Sao_Paulo".parse().unwrap();
let now = Utc::now().with_timezone(&tz);
println!("{}", now.to_rfc3339());
PHP
$now = new DateTimeImmutable('now', new DateTimeZone('America/Sao_Paulo'));
echo $now->format(DATE_ATOM), PHP_EOL;
SQL — PostgreSQL
SELECT now() AT TIME ZONE 'America/Sao_Paulo' AS local_time,
       extract(epoch FROM now())::bigint AS unix_seconds;
Bash
TZ='America/Sao_Paulo' date +"%Y-%m-%dT%H:%M:%S%z"
TZ='America/Sao_Paulo' 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/rio-de-janeiro. This page stays focused on offsets, identifiers and formats.

Nearby

Same zone (America/Sao_Paulo) — identical offset, always:

Elsewhere in Brazil:

Rio de Janeiro time zone questions

What is the UTC offset in Rio de Janeiro right now?
Rio de Janeiro is UTC-03:00 — 3 hours behind UTC. The abbreviation currently in force is UTC-03:00, and the local time is 03:40 on Thursday, 13 August 2026.
Which timezone identifier should I use for Rio de Janeiro in code?
America/Sao_Paulo. 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-03:00 as a fixed offset and do not store the abbreviation UTC-03:00 — the offset changes with the seasons and with the law, and the identifier is what carries those rules.
Does Rio de Janeiro observe daylight saving time?
No. America/Sao_Paulo stays on UTC-03:00 all year, so any conversion involving it only moves when the OTHER side of the conversion changes its clocks.
Does the Unix timestamp change in Rio de Janeiro?
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 Rio de Janeiro?
This page also answers to RIO, GIG, SDU. They all redirect here, because Rio de Janeiro 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