Time Zone Converter & Meeting Planner

A Java Swing desktop application designed to seamlessly convert time zones and find optimal cross-timezone meeting slots based on local work hours.

RoleJava Developer
Date2025
StackJava (JDK 21+), Swing GUI, java.time API

Overview

Coordinating meetings across multiple countries can be a logistical nightmare due to varying time zones and daylight saving rules. To solve this, I developed a desktop application using Java Swing that acts as both a precise time converter and a smart meeting planner. The app calculates overlapping working hours across multiple selected cities globally, storing configurations locally via CSV, making it an essential tool for distributed teams.

Key Features

  • Smart Meeting Planner: Select multiple cities, specify meeting duration, and the algorithm will scan UTC timelines to find slots where all participants are within their local working hours.
  • Accurate Time Conversion: Utilizes Java's robust java.time.ZoneId to convert dates and times instantly while automatically handling complex Daylight Saving Time (DST) rules.
  • Overnight Shift Support: The system intelligently handles work hours that span past midnight (e.g., 22:00 to 06:00), automatically adjusting the date boundaries for accurate calculation.
  • Admin Configuration (CSV): Features a password-protected Admin UI allowing users to dynamically add, edit, and persist city data and work hours into a local cities.csv file.
  • Localized GUI: Customized the Swing UIManager and font rendering to fully support Thai language display seamlessly across the application.

Challenges & Solutions

Challenge: Calculating overlapping availability across different time zones is highly complex. The logic must account for date boundaries, varying offsets (like DST), and edge cases where a local work shift crosses into the next calendar day.

Solution: Instead of doing manual math with offsets, I fully leveraged the modern java.time package (specifically ZonedDateTime and Duration). I designed an algorithm that uses UTC as the central pivot. It steps through time intervals, converts the UTC cursor back to each city's local time zone, and checks it against their specific WorkHours object. By adding an intelligent date-wrap check (adding +1 day if the end time is numerically before the start time), the app flawlessly handles overnight shifts and cross-date meetings.

Next Project

Thesis Format Verification System

View Case Study