fetch('https://api.tzinfo.org/v1')
.then(res => res.json())
.then(data => {
const zone = data.zones.find(z => z.id === 'America/New_York');
const localTime = new Date((Date.now() / 1000 + zone.currentOffset) * 1000);
console.log(localTime.toISOString()); // Current time in New York
});
import requests
import time
from datetime import datetime
response = requests.get('https://api.tzinfo.org/v1')
zones = response.json()['zones']
tokyo = next(z for z in zones if z['id'] == 'Asia/Tokyo')
local_ts = time.time() + tokyo['currentOffset']
print(datetime.utcfromtimestamp(local_ts)) # Current time in Tokyo
resp, _ := http.Get("https://api.tzinfo.org/v1")
defer resp.Body.Close()
var data struct {
Zones []struct {
ID string `json:"id"`
CurrentOffset int64 `json:"currentOffset"` // seconds from UTC
} `json:"zones"`
}
json.NewDecoder(resp.Body).Decode(&data)
// Calculate local time: time.Now().Unix() + zone.CurrentOffset
#[derive(Deserialize)]
struct Zone {
id: String,
#[serde(rename = "currentOffset")]
current_offset: i64, // seconds from UTC
}
let data: TzData = reqwest::get("https://api.tzinfo.org/v1").await?.json().await?;
let zone = data.zones.iter().find(|z| z.id == "Europe/Paris").unwrap();
let local_ts = std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)?.as_secs() as i64 + zone.current_offset;
<?php
$data = json_decode(file_get_contents('https://api.tzinfo.org/v1'), true);
$zones = array_column($data['zones'], null, 'id');
$sydney = $zones['Australia/Sydney'];
$localTime = time() + $sydney['currentOffset'];
echo date('Y-m-d H:i:s', $localTime); // Current time in Sydney
using var client = new HttpClient();
var json = await client.GetStringAsync("https://api.tzinfo.org/v1");
var data = JsonSerializer.Deserialize<TzData>(json);
var london = data.Zones.First(z => z.Id == "Europe/London");
var localTime = DateTimeOffset.UtcNow.AddSeconds(london.CurrentOffset);
Console.WriteLine($"London: {localTime:yyyy-MM-dd HH:mm:ss}");
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.tzinfo.org/v1")).build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
var data = new JSONObject(response.body());
var zone = data.getJSONArray("zones").getJSONObject(0);
long localEpoch = Instant.now().getEpochSecond() + zone.getLong("currentOffset");
#include <cpr/cpr.h>
#include <nlohmann/json.hpp>
auto response = cpr::Get(cpr::Url{"https://api.tzinfo.org/v1"});
auto data = nlohmann::json::parse(response.text);
auto& zone = data["zones"][0];
auto localTime = std::time(nullptr) + zone["currentOffset"].get<int64_t>();
std::cout << zone["id"] << ": " << localTime << std::endl;
require 'net/http'
require 'json'
data = JSON.parse(Net::HTTP.get(URI('https://api.tzinfo.org/v1')))
la = data['zones'].find { |z| z['id'] == 'America/Los_Angeles' }
local_time = Time.at(Time.now.utc.to_i + la['currentOffset']).utc
puts "Los Angeles: #{local_time.strftime('%Y-%m-%d %H:%M:%S')}"
let url = URL(string: "https://api.tzinfo.org/v1")!
let (data, _) = try await URLSession.shared.data(from: url)
let tzData = try JSONDecoder().decode(TzData.self, from: data)
let berlin = tzData.zones.first { $0.id == "Europe/Berlin" }!
let localDate = Date(timeIntervalSince1970: Date().timeIntervalSince1970 + Double(berlin.currentOffset))
print("Berlin: \(localDate)")