Java 如何将日期时间从一个时区转换为另一个时区
记录是根据美国时区保存的,但如果我想向用户显示相同的记录,则应将服务器日期时间(美国时区)转换为用户日期时间(用户时区)如果您键入谷歌“Java日期更改时区”或“Javascript日期更改时区”。您将获得一个结果: Java语言(源代码:) Javascript(来源:) java.time 旧的日期时间类设计拙劣、混乱且麻烦。避开它们 使用现代类:内置于Java8和更高版本中的框架。找到后面的端口和 时间轴上的一个瞬间 应用时区()以获取一个时间间隔 切勿使用3-4个字母的区域缩写,如Java 如何将日期时间从一个时区转换为另一个时区,java,datetime,timezone,Java,Datetime,Timezone,记录是根据美国时区保存的,但如果我想向用户显示相同的记录,则应将服务器日期时间(美国时区)转换为用户日期时间(用户时区)如果您键入谷歌“Java日期更改时区”或“Javascript日期更改时区”。您将获得一个结果: Java语言(源代码:) Javascript(来源:) java.time 旧的日期时间类设计拙劣、混乱且麻烦。避开它们 使用现代类:内置于Java8和更高版本中的框架。找到后面的端口和 时间轴上的一个瞬间 应用时区()以获取一个时间间隔 切勿使用3-4个字母的区域缩写,如EST
EST
或IST
。它们既不是标准化的,也不是独特的(!)。使用,以大陆/地区
格式构建,例如,太平洋/奥克兰
应用不同的时区以生成另一个调整到该时区的ZoneDateTime
。打电话
如果你想回去,就要一张支票
获取柏林时间并将其转换为UTC时间的代码
Calendar sc = Calendar.getInstance(TimeZone.getTimeZone("Europe/Berlin"));
String strt = null;
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
sf.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
sc.set(sc.get(Calendar.YEAR),sc.get(Calendar.MONTH), sc.get(Calendar.DATE),sc.get(Calendar.HOUR) , sc.get(Calendar.MINUTE));
strt = sf.format(sc.getTime());
System.out.println("Start :"+strt);
氧指数!Java和Javascript是两种完全不同的东西!问题是关于Java的
// function to calculate local time
// in a different city
// given the city's UTC offset
function calcTime(city, offset) {
// create Date object for current location
d = new Date();
// convert to msec
// add local time zone offset
// get UTC time in msec
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
// create new Date object for different city
// using supplied offset
nd = new Date(utc + (3600000*offset));
// return time as a string
return "The local time in " + city + " is " + nd.toLocaleString();
}
// get Bombay time
alert(calcTime('Bombay', '+5.5'));
//Convert date from one zone to another
/*
$zone_from='Asia/Kolkata';
$zone_to='America/Phoenix';
date_default_timezone_set($zone_from);
$convert_date="2016-02-26 10:35:00";
echo $finalDate=zone_conversion_date($convert_date, $zone_from, $zone_to);
*/
function zone_conversion_date($time, $cur_zone, $req_zone)
{
date_default_timezone_set("GMT");
$gmt = date("Y-m-d H:i:s");
date_default_timezone_set($cur_zone);
$local = date("Y-m-d H:i:s");
date_default_timezone_set($req_zone);
$required = date("Y-m-d H:i:s");
/* return $required; */
$diff1 = (strtotime($gmt) - strtotime($local));
$diff2 = (strtotime($required) - strtotime($gmt));
$date = new DateTime($time);
$date->modify("+$diff1 seconds");
$date->modify("+$diff2 seconds");
return $timestamp = $date->format("Y-m-d H:i:s");
}
TimeZone fromTimezone =TimeZone.getTimeZone(from);
TimeZone toTimezone=TimeZone.getTimeZone(to);
long fromOffset = fromTimezone.getOffset(calendar.getTimeInMillis());
long toOffset = toTimezone.getOffset(calendar.getTimeInMillis());
long convertedTime = calendar.getTimeInMillis() - (fromOffset - toOffset);
Instant now = Instant.now();
ZoneId zoneId_Montreal = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt_Montreal = ZonedDateTime.ofInstant( instant , zoneId_Montreal );
ZoneId zoneId_Paris = ZoneId.of( "Europe/Paris" ); // Or "Asia/Kolkata", etc.
ZonedDateTime zdt_Paris = zdt_Montreal.withZoneSameInstant( zoneId_Paris );
Instant instant = zdt_Paris.toInstant();
Calendar sc = Calendar.getInstance(TimeZone.getTimeZone("Europe/Berlin"));
String strt = null;
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
sf.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
sc.set(sc.get(Calendar.YEAR),sc.get(Calendar.MONTH), sc.get(Calendar.DATE),sc.get(Calendar.HOUR) , sc.get(Calendar.MINUTE));
strt = sf.format(sc.getTime());
System.out.println("Start :"+strt);