/***
*
* @param s 所在时区
* @return 所在时区的时间
*/
private String calculateTime(String s, boolean isDaylight) {
String s1 = "空";
//我要获取当前的日期
Date date = new Date();
//设置要获取到什么样的时间
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
//获取String类型的时间
String createdate = sdf.format(date);
String nowTime[] = createdate.split(":");
int now[] = new int[2];
now[0] = Integer.parseInt(nowTime[0]);
now[1] = Integer.parseInt(nowTime[1]);
//计算的区时=已知区时-(已知区时的时区-要计算区时的时区)
if (s.contains(":")) {
//如果是半个时区 判断前面的字符是加还是减 后面的跟着变
String time[] = s.split(":");
int shiqu[] = new int[2];
shiqu[0] = Integer.parseInt(time[0]);
shiqu[1] = Integer.parseInt(time[1]);
if (shiqu[0] < 0) {
///这是时区是 - 的情况 例如-9:30
int hour = now[0] - (8 - shiqu[0]);
int minute = now[1] - (shiqu[1]);
if (minute < 0) {
hour = hour - 1;
minute = 59 + minute;
}
if (hour < 0) {
hour = 23 + hour;
}
//判断是不是夏令时
if (isDaylight) {
hour++;
}
if (minute < 10) {
s1 = hour + ":0" + now[1];
} else {
s1 = hour + ":" + now[1];
}
} else {
///这是时区是 + 的情况 例如+9:30
int hour = now[0] - (8 - shiqu[0]);
int minute = now[1] + (shiqu[1]);
if (minute > 59) {
hour = hour + 1;
minute = minute - 59;
}
if (minute < 0) {
hour = hour - 1;
minute = 59 + minute;
}
if (hour > 23) {
hour = hour - 23;
}
if (hour < 0) {
hour = 23 + hour;
}
//判断是不是夏令时
if (isDaylight) {
hour++;
}
if (minute < 10) {
s1 = hour + ":0" + minute;
} else {
s1 = hour + ":" + minute;
}
}
} else {
int time = Integer.parseInt(s);
int timeHour = now[0] - (8 - time);
if (timeHour < 0) {
timeHour = 23 + timeHour;
}
//判断是不是夏令时
if (isDaylight) {
timeHour++;
}
if (now[1] < 10) {
s1 = timeHour + ":0" + now[1];
} else {
s1 = timeHour + ":" + now[1];
}
}
return s1;
}
根据现在的时区,判断其他时区的时间,包含夏令时。
猜你喜欢
转载自blog.csdn.net/qq_35674951/article/details/81285050
今日推荐
周排行