Dates, Times, and Formatting
Time Zones
Use explicit offsets instead of the host computer's local zone.
Time Zones
TimeZones.cs
using System;
using System.Globalization;
class Program
{
static void Main()
{
int offsetHours = ;
DateTimeOffset meeting = new DateTimeOffset(
2026, 5, 20, 14, 30, 0, TimeSpan.FromHours(offsetHours)
);
DateTimeOffset utc = meeting.ToUniversalTime();
string localText = meeting.ToString("yyyy-MM-dd HH:mm zzz", CultureInfo.InvariantCulture);
string utcText = utc.ToString("yyyy-MM-dd HH:mm zzz", CultureInfo.InvariantCulture);
Console.WriteLine($"local={localText}");
Console.WriteLine($"utc={utcText}");
}
}
using System;
using System.Globalization;
class Program
{
static void Main()
{
int offsetHours = ;
DateTimeOffset meeting = new DateTimeOffset(
2026, 5, 20, 14, 30, 0, TimeSpan.FromHours(offsetHours)
);
DateTimeOffset utc = meeting.ToUniversalTime();
string localText = meeting.ToString("yyyy-MM-dd HH:mm zzz", CultureInfo.InvariantCulture);
string utcText = utc.ToString("yyyy-MM-dd HH:mm zzz", CultureInfo.InvariantCulture);
Console.WriteLine($"local={localText}");
Console.WriteLine($"utc={utcText}");
}
}
using System;
using System.Globalization;
class Program
{
static void Main()
{
int offsetHours = ;
DateTimeOffset meeting = new DateTimeOffset(
2026, 5, 20, 14, 30, 0, TimeSpan.FromHours(offsetHours)
);
DateTimeOffset utc = meeting.ToUniversalTime();
string localText = meeting.ToString("yyyy-MM-dd HH:mm zzz", CultureInfo.InvariantCulture);
string utcText = utc.ToString("yyyy-MM-dd HH:mm zzz", CultureInfo.InvariantCulture);
Console.WriteLine($"local={localText}");
Console.WriteLine($"utc={utcText}");
}
}
offsets
`DateTimeOffset` keeps a date and time together with a known UTC offset.