Answer
No, there is no supported method to pin a timestamp to a specific time zone using Util.time(). The helper generates a Discord markdown timestamp (<t:epoch:style>) which is designed to be rendered by the receiving client in the viewer's own local time zone. To display a consistent reference time for all users regardless of their location, you must bypass Util.time() and send a manually formatted plain-text string.
Confirmed Behavior
- Client-Side Rendering: Discord's timestamp markdown has no parameter for time zone offsets. The rendering logic resides entirely within the Discord client.
- UTC Conversion:
Util.time() (available since v13.6.0) converts any provided JavaScript Date object to a UTC epoch (seconds since the Unix epoch) before wrapping it in the markdown tag.
- Relative Timestamps: Styles like
'relative' are calculated against the viewer's system clock, not the bot's server time.
Likely Explanation
Discord's implementation of <t:> tags prioritizes accessibility and localization. By storing only the absolute epoch instant, Discord ensures that a user in Tokyo and a user in New York both see the correct local time for a global event without the bot needing to know every user's location.
Implementation for Fixed Reference Times
When a single reference time zone is required (e.g., "The event starts at 10:00 AM EST"), use the native Intl.DateTimeFormat API to generate a static string:
const eventDate = new Date('2026-10-16T18:00:00Z');
const formatter = new Intl.DateTimeFormat('en-US', {
timeZone: 'America/New_York',
year: 'numeric', month: '2-digit', day: '2-digit',
hour: '2-digit', minute: '2-digit',
hour12: false
});
const fixedTimeString = formatter.format(eventDate);
// Result: "10/16/2026, 14:00" (Sent as plain text)
Verification
- Cross-Client Test: Send a message using
Util.time() and another using the Intl string. Change your OS time zone settings; the Util.time() output will shift, while the plain text remains identical.
- API Inspection: Use a GET request to
/channels/{id}/messages/{id}. The Util.time() output will appear as a tag (e.g., <t:1729111200:f>), whereas the fixed time will appear as standard characters.
Note: Using plain text removes the interactive hover tooltip and automatic localization provided by Discord. If you need both, consider sending the fixed string followed by a Util.time() tag for the user's convenience.