There will always be a 3 AM flight, a dead phone, or a client who answers "quick, what time is it for them right now?" and the internet will not be available. This is the mental method I've used for years. It's not glamorous, it's arithmetic, and it takes about ten minutes to learn and a week to make permanent.
Step 1: Memorize Offsets, Not Cities
The trick of people who are fast at this is that they don't memorize city pairs at all. They memorize a handful of UTC offsets, because every city is just an offset wearing a coat. The short list that covers most of the world's business hours:
| Offset | Roughly |
|---|---|
| UTC−8 | Los Angeles, Vancouver, Seattle |
| UTC−5 / −4 | New York winter / New York summer |
| UTC±0 / +1 | London winter / London summer |
| UTC+1 / +2 | Central Europe; also Kigali, Cairo in the +2 slot |
| UTC+3 | Moscow, Nairobi's neighbours, Riyadh |
| UTC+5:30 | Mumbai |
| UTC+8 | Singapore, Shanghai, Hong Kong |
| UTC+9 | Tokyo |
That's the whole deck. Eight offsets gets you most of the planet's professional hours.
Step 2: The Add-12 Shortcut
Now, convert. From your city to the target: targetOffset − yourOffset = the difference. Add the difference to your time. If the answer crosses 12, it flips AM/PM; if it crosses 24, the date changes. The one rule people stub their toe on is the twelve-hour boundary. A memorized quick check: count it as military time and there's nothing to flip; just add, and if your result is bigger than 24, subtract 24 and note "tomorrow."
Concrete example, the one I run most: it's 9 PM in Kigali (UTC+2) and I want Tokyo (UTC+9). Difference is +7. 9 PM is 21:00, plus 7 is 28:00, minus 24 is 04:00 the next day. Instant answer: 4 AM Thursday in Tokyo. I did that in my head between two sentences of a call.
Step 3: English Time Versus Civil Time
The other half of the battle is that "4 AM" and "04:00" are the same number but people say them differently. When you convert, work in 24-hour first, then translate once at the end. The most common mental error in all time travel is flipping the hour by one at this last step, the "I meant 21:00, not 9 AM" mistake. It's the difference between the two hours in the UTC offset guide, and it's why pilots and programmers use Zulu/24-hour instead.
The 30- and 45-Minute Exceptions
Everywhere except India (+5:30), Nepal (+5:45), and a couple of places in our unusual zones article, offsets are whole hours, so the add-the-difference method stays clean. When you do hit a half or quarter offset, do the hour part first and paste the minutes on at the end; treat +5:30 as "+5, then add half an hour," and you'll never miscount.
Practice Until It's Boring
The part nobody enjoys: this only sticks if you use it daily. I spent two weeks converting every city time I saw on my phone by hand before checking. Two weeks, five minutes a day, and the whole thing became permanent; now asleep-and-awake I can tell you what time it is in New York without thinking. And when you want the exactness back, the converter does the same math for a specific date, DST included, which mental arithmetic never does by itself.