
JAVA中将UTC时间转换为本地时间的方法,其他的时区转换与此类似。
public static String utc2Local(String utcTime, String utcTimePatten,
String localTimePatten) {
SimpleDateFormat utcFormater = new SimpleDateFormat(utcTimePatten);
utcFormatersetTimeZone(TimeZonegetTimeZone("UTC"));//时区定义并进行时间获取
Date gpsUTCDate = null;
try {
gpsUTCDate = utcFormaterparse(utcTime);
} catch (ParseException e) {
eprintStackTrace();
}
SimpleDateFormat localFormater = new SimpleDateFormat(localTimePatten);
localFormatersetTimeZone(TimeZonegetDefault());
String localTime = localFormaterformat(gpsUTCDategetTime());
return localTime;
}
若要将 UTC 转换为本地时间,请按照下列步骤 *** 作:
确定您的本地时间偏移量,从 UTC 时间。为此请 Microsoft 基于 Windows 的计算机上按照下列步骤 *** 作:
单击 开始,单击 运行,键入 timedatecpl,然后单击 确定。
单击 时区 选项卡,然后验证选中了您的本地时区。 如果不选择您的本地时区,则请在可用的时区的列表中单击它。
在每个本地区域列表项开始时显示本地时间偏移量。例如对于-5: 00 是本地时间偏移量为东部时间 (美国和加拿大):
(GMT-5:00) 东部时间 (美国和加拿大)
添加本地时间偏移量为 UTC 时间。
例如您的本地时间偏移量是-5: 00,然后如果 UTC 时间显示为 11: 00,添加-5 到 11。偏移量的调整时该时间设置为 06: 00 (上午 6: 00)。
注意 该日期也采用 UTC 格式。例如您的本地时间偏移量是-8: 00,并且如果该文件的 UTC 时间显示为 00: 00 (午夜 12: 00) 在星期一,调整后的时间是 16: 00 星期日 (下午 4: 00,星期日)。
调整为夏时制时间。
UTC 时间不以反映夏令时进行调整。 如果您的时区参与夏时制时间,添加当夏时制时间是有效的文件的偏移量调整时间的时间差别。例如对于如果在您的时区中的夏令时的标准时间提前一小时,将 1 小时的时间添加到偏移量调整时间。
如果您的本地时间使用 12 小时格式,请将 24 小时时间格式转换为 12 小时时间格式。要在转换请按照下列步骤 *** 作,请执行以下 *** 作:
如果偏移量调整的时间 12: 01 和 23: 59,(含) 之间,之间减去 12 从在调整后的时间,然后将附加 下午
如果已调整的时间介于 00: 01 和 11: 59,(含) 之间,留在调整后的时间为是,然后将附加 上午
如果已调整的时间 00: 00,则使用 午夜 12: 00。
如果已调整的时间 12: 00,使用 中午 12: 00。
程序如下:
import datetime
# 获取当前时间
current_time = datetimedatetimeutcnow() + datetimetimedelta(hours=8)
# 转换时区
new_timezone = datetimetimezone(datetimetimedelta(hours=-5))
converted_time = current_timeastimezone(new_timezone)
# 输出转换后的时间
print('UTC+8时间:', current_time)
print('UTC-5时间:', converted_time)
经常混淆于此,特地研究了一下,记录在此以备忘。整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,UniversalTimeCoordinated)。UTC与格林尼治平均时(GMT,GreenwichMeanTime)一样,都与英国伦敦的本地时相同。在本文中,UTC与GMT含义完全相同。北京时区是东八区,领先UTC八个小时,在电子邮件信头的Date域记为+0800。如果在电子邮件的信头中有这么一行:Date:Fri,08Nov200209:42:22+0800说明信件的发送地的地方时间是二○○二年十一月八号,星期五,早上九点四十二分(二十二秒),这个地方的本地时领先UTC八个小时(+0800,就是东八区时间)。电子邮件信头的Date域使用二十四小时的时钟,而不使用AM和PM来标记上下午。以这个电子邮件的发送时间为例,如果要把这个时间转化为UTC,可以使用一下公式:UTC+时区差=本地时间时区差东为正,西为负。在此,把东八区时区差记为+0800,UTC+(+0800)=本地(北京)时间(1)那么,UTC=本地时间(北京时间))-0800(2)0942-0800=0142即UTC是当天凌晨一点四十二分二十二秒。如果结果是负数就意味着是UTC前一天,把这个负数加上2400就是UTC在前一天的时间。例如,本地(北京)时间是0432(凌晨四点三十二分),那么,UTC就是0432-0800=-0368,负号意味着是前一天,-0368+2400=2032,既前一天的晚上八点三十二分。纽约的时区是西五区,比UTC落后五个小时,记为-0500:UTC+(-0500)=纽约时间(3)UTC=纽约时间+0500(4)把(2)式-(4)式相比较,UTC=北京时间-0800=纽约时间+0500(5)即北京时间=纽约时间+1300(6)即北京时间领先纽约时间十三个小时,由(6)式,纽约时间=北京时间-1300(7)在四月下旬,纽约又换用夏令时,又称为日光节约时,比标准纽约时间提前一个小时,实际成为西四区的标准时间,成为-0400。UTC+(-0400)=纽约夏令时,套用以上公式,北京时间=纽约夏令时+1200纽约夏令时=北京时间-1200在这些转换中,最重要的公式就是UTC+时区差=本地时间时区差东为正,西为负。例如,东八区(北京)是+0800,西五区(纽约)是-0500,加州是西八区,是-0800,美国中部时区是西六区,-0600,美国山地时区是西七区,-0700,太平洋时区是西八区,-0800,在夏天使用夏时制,成为-0700。德国时区是东一区,+0100,夏天变为+0200。多数电子邮件程序,例如OutlookExpress,在显示时间时,计算机程序把时间先转换成为本地时间再显示,例如,邮件的Date域为:Date:Fri,08Nov200209:42:22+0800
以上就是关于java中utc时间怎么转换为本地时间全部的内容,包括:java中utc时间怎么转换为本地时间、请教如何把当前时间转换成utc格式的、查询日期库文档,写代码,完成当前时间从UTC+8到UTC-5的转换等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)