如何将字符串转换为时区感知日期

How to convert string into timezone aware date

你好,我有一个字符串 2020-08-19 13:04:53。我知道这个时间是在Sydney, Australia时间。但是,我需要将这个时间转换为 New York, America 时间作为日期对象。我该怎么做?

date_default_timezone_set("Australia/Sydney");
$time = '2020-08-19 13:04:53';
$date = date('Y-m-d H:i:s', $time);

我会尝试

<?php
$date = new DateTime('2020-08-19 13:04:53', new DateTimeZone('Australia/Sydney'));
echo $date->format('Y-m-d H:i:s');
// Output: 2020-08-19 13:04:53

$date->setTimezone(new DateTimeZone('America/New_York'));
echo $date->format('Y-m-d H:i:s');
// Output: 2020-08-18 23:04:53