How to Configure AWS Console Time Zone Display for Maintenance Events (UTC Conversion Guide)


2 views

When scheduling critical infrastructure maintenance like EC2 instance reboots, accurate time representation is crucial. AWS Console defaults to displaying times in UTC-5 (US Eastern) for certain events, regardless of your actual region or instance location. This creates confusion when your team operates in different time zones.

The AWS Console doesn't currently offer a global time zone preference setting. However, we can work around this limitation using several approaches:


// Example: Converting UTC-5 to local time in JavaScript
const eventTime = new Date("September 26, 2014 07:00:00 GMT-0500");
const localTime = eventTime.toLocaleString();
console.log(Local maintenance time: ${localTime});

Browser-Based Solution: Install time zone converter extensions like "Timezone Converter" for Chrome, which automatically detects and converts AWS timestamps.

AWS CLI Alternative: When possible, retrieve schedule information via AWS CLI where you can control timestamp formatting:


aws ec2 describe-scheduled-instance \
  --filters Name=instance-id,Values=i-1234567890abcdef0 \
  --query 'ScheduledInstances[*].SlotStartTime' \
  --output text | xargs -I {} date -d "{}" '+%Y-%m-%d %H:%M:%S %Z'

For frequent maintenance events, consider building a simple dashboard that pulls AWS events and displays them in your preferred time zone:


import boto3
from datetime import datetime
import pytz

def get_maintenance_events():
    client = boto3.client('health')
    response = client.describe_events(
        filter={
            'services': ['EC2'],
            'eventTypeCategories': ['scheduledChange']
        }
    )
    
    central_tz = pytz.timezone('US/Central')
    for event in response['events']:
        utc_time = event['startTime']
        local_time = utc_time.astimezone(central_tz)
        print(f"Event: {event['arn']} - Local Time: {local_time}")

  • Document all maintenance windows in both UTC and local time
  • Use AWS CloudWatch Events to trigger notifications in your time zone
  • Create Lambda functions to convert and forward maintenance alerts
  • Standardize on UTC for all internal communications about AWS events

While AWS hasn't announced plans for configurable time zones in the Console, you can submit feature requests through AWS Support. Many teams find that standardizing on UTC for all operations eliminates confusion across distributed teams.


During a recent maintenance event for our EC2 instances in us-west-2 (Oregon), we noticed AWS Console displayed the schedule in UTC-5 (US Eastern time) despite our team being in Central Time and the instances in Pacific Time. This created unnecessary time conversion overhead.

AWS Console doesn't have a built-in time zone setting - it relies on your browser's time zone detection. Here's how to verify and configure it:

// JavaScript code to check browser time zone
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone);
// Expected output: "America/Chicago" for Central Time

To ensure proper time display:

  1. Check your OS time zone settings
  2. Configure browser to send correct time zone header
  3. For Chrome: chrome://settings/system > "Time zone"

For programmatic handling of maintenance windows, use AWS CLI with time zone conversion:

# Get maintenance events in ISO format
aws ec2 describe-instance-maintenance-events \
  --instance-ids i-1234567890abcdef0 \
  --query 'InstanceMaintenanceEvents[*].{Start:NotBefore,End:NotAfter}' \
  --output json

# Then convert using jq and date
aws ec2 describe-instance-maintenance-events \
  --instance-ids i-1234567890abcdef0 \
  --query 'InstanceMaintenanceEvents[*].NotBefore' \
  --output text | xargs -I {} date -d "{}" +"%Y-%m-%d %H:%M:%S %Z"

Create CloudWatch Events that trigger in your preferred time zone:

{
  "source": ["aws.health"],
  "detail-type": ["AWS Health Event"],
  "detail": {
    "service": ["EC2"],
    "eventTypeCategory": ["scheduledChange"]
  },
  "inputTransformer": {
    "inputPathsMap": {
      "startTime": "$.detail.startTime",
      "endTime": "$.detail.endTime"
    },
    "inputTemplate": "{\"localStartTime\":\"\",\"localEndTime\":\"\"}"
  }
}

Consider these tools for better time zone management:

  • AWS Lambda functions with Moment-Timezone library
  • Terraform aws_maintenance_window resource with time zone parameter
  • Custom dashboard using AWS SDK time zone conversion