from datetime import datetime
import pytz
# Retrieve current time in UTC
def get_current_utc_time():
utc_now = datetime.now(pytz.utc)
return utc_now
# Convert current time to a specific time zone
def convert_time_to_timezone(current_time, timezone_str):
timezone = pytz.timezone(timezone_str)
converted_time = current_time.astimezone(timezone)
return converted_time
# Format time into a readable string
def format_time(time):
return time.strftime('%Y-%m-%d %H:%M:%S %Z%z')
# Calculate the time difference between two time zones
def calculate_time_difference(tz1, tz2):
reference_time = datetime(2024, 1, 1, 12, 0, 0, tzinfo=pytz.utc)
tz1_time = reference_time.astimezone(pytz.timezone(tz1))
tz2_time = reference_time.astimezone(pytz.timezone(tz2))
difference = (tz2_time - tz1_time).total_seconds() / 3600
return abs(difference)
# Determine a suitable meeting time across different time zones
def find_meeting_time(base_tz, other_tzs, base_time):
base_timezone = pytz.timezone(base_tz)
base_time = datetime.strptime(base_time, "%Y-%m-%d %H:%M").replace(tzinfo=base_timezone)
meeting_times = {}
for tz in other_tzs:
local_time = base_time.astimezone(pytz.timezone(tz))
meeting_times[tz] = format_time(local_time)
return meeting_times
# Example usage and demonstration of functionalities
def main():
# Time retrieval
utc_now = get_current_utc_time()
print("Current UTC time:", format_time(utc_now))
# Time zone conversion
time_zones = ['America/New_York', 'Europe/London', 'Asia/Tokyo']
for tz in time_zones:
converted_time = convert_time_to_timezone(utc_now, tz)
print(f"Current time in {tz}:", format_time(converted_time))
# Time difference calculation
difference = calculate_time_difference('Europe/London', 'Asia/Tokyo')
print("Time difference between London and Tokyo:", difference, "hours")
# Finding a suitable meeting time
meeting_time = find_meeting_time('America/New_York', ['Europe/London', 'Asia/Tokyo'], "2024-05-01 09:00")
print("Meeting times across time zones:")
for tz, time in meeting_time.items():
print(tz, ":", time)
if __name__ == "__main__":
main()
from datetime import datetime
import pytz
datetime
: This module supplies classes for manipulating dates and times.pytz
: This library allows accurate and cross-platform timezone calculations using Python.get_current_utc_time()
: Retrieves the current UTC time using pytz.utc
to ensure the datetime object is timezone-aware.convert_time_to_timezone(current_time, timezone_str)
: Converts a given timezone-aware datetime object to a different timezone specified by timezone_str
.format_time(time)
: Formats a datetime object into a human-readable string that includes the timezone abbreviation and offset.calculate_time_difference(tz1, tz2)
: Calculates the absolute difference in hours between two time zones. It uses a specific reference time (January 1, 2024, at 12:00 PM UTC) to ensure consistency.find_meeting_time(base_tz, other_tzs, base_time)
: Determines suitable meeting times across different time zones. It takes a base time in one timezone and converts it to other specified timezones.main()
FunctionThis is the main function that ties all the other functions together:
America/New_York
, Europe/London
, Asia/Tokyo
).When you run the main()
function, it will print:
Here’s a sample of what the output might look like:
Current UTC time: 2024-04-25 06:42:17 UTC+0000
Current time in America/New_York: 2024-04-25 02:42:17 EDT-0400
Current time in Europe/London: 2024-04-25 07:42:17 BST+0100
Current time in Asia/Tokyo: 2024-04-25 15:42:17 JST+0900
Time difference between London and Tokyo: 9 hours
Meeting times across time zones:
Europe/London : 2024-05-01 14:00:00 BST+0100
Asia/Tokyo : 2024-05-01 22:00:00 JST+0900