One of the realities of modern living in 2025 is that the world is truly a melting pot, and people are distributed all over it.

Many of my closest friends, by circumstance, are not in Kenya and are truly distributed all over the world.

Despite my best efforts, it is not possible to remember when it is 8:00 PM my time (Nairobi), what time it is wherever they are.

Perhaps I can build a small utility for this purpose?

Very simply, given a time, it prints for me what time it is in other time zones that I am interested in.

City Time Zone
Algiers Africa/Algiers
Wollongong Australia/Sydney
London Europe/London
Dublin Europe/Dublin
Cape Town Africa/Johannesburg
San Francisco America/Los_Angeles

The package NodaTime can assist with the actual heavy lifting.

We start off with a simple type to hold the city and time zone:

internal record ZoneInfo(string City, string TimeZone);

Then the code that does the actual work:

using NodaTime;
using NodaTime.Text;

// Print current system date
Console.WriteLine($"It is {DateTime.Now:ddd, d MMM yyyy h:mm tt} in Nairobi");
Console.WriteLine();

// Get the current time as an Instant
var now = SystemClock.Instance.GetCurrentInstant();

// Build an array of zone info types
ZoneInfo[] zones =
[
    new("Algiers", "Africa/Algiers"),
    new("Atlanta", "America/Los_Angeles"),
    new("Wollongong", "Australia/Sydney"),
    new("London", "Europe/London"),
    new("Dublin", "Europe/Dublin"),
    new("Cape Town", "Africa/Johannesburg"),
    new("San Francisco", "America/Los_Angeles"),
    new("San José", "America/Los_Angeles")
];

// Build the display pattern for the date and time
var pattern = ZonedDateTimePattern.CreateWithInvariantCulture("ddd d MMM yyyy, h:mm tt", DateTimeZoneProviders.Tzdb);

foreach (var zone in zones.OrderBy(x => x.City))
{
    // Get the current zone date time
    var zonedDateTime = now.InZone(DateTimeZoneProviders.Tzdb[zone.TimeZone]);
    // Output
    Console.WriteLine($"{zone.City} - {pattern.Format(zonedDateTime)}");
}

This prints something like this:

It is Wed, 1 Oct 2025 11:27 PM in Nairobi

Algiers - Wed 1 Oct 2025, 9:27 PM
Atlanta - Wed 1 Oct 2025, 1:27 PM
Cape Town - Wed 1 Oct 2025, 10:27 PM
Dublin - Wed 1 Oct 2025, 9:27 PM
London - Wed 1 Oct 2025, 9:27 PM
San Francisco - Wed 1 Oct 2025, 1:27 PM
San José - Wed 1 Oct 2025, 1:27 PM
Wollongong - Thu 2 Oct 2025, 6:27 AM

Now I can tell whether it is a reasonable hour to call or Whatsapp my friends.

TLDR

NodaTime is a powerful library that can assist in the conversion and display of dates across time zones.

The code is in my GitHub.

Happy hacking!