我在Android中遇到问题,DateTime转换为带有时区的本地时间。我使用以下方法转换为当地时间,但我得到的是'年份'和'时间'错误。
PS 收到的日期时间是孟加拉国标准时间"亚洲/达卡","(GMT +06:00)达卡"
public String localToGMT(String serverDate) {
String DATE_FORMAT = "dd.mm.yyyy HH:MM";//15.06.18 6:00
String strDate = "";
///Date date = new Date();
try {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date gmt = null;
gmt = sdf.parse(serverDate);
strDate = sdf.format(gmt);
} catch (ParseException e) {
e.printStackTrace();
}
return strDate;
}
输入:22.06.2018 00:00
我的输出:22.06.2017 00:12
有人可以帮我这个吗?
答案 0 :(得分:1)
MM
代表月份,mm
代表minutes
,您需要重新设置时区,试试这个:
public static void main(String[] args) throws Exception {
String serverDate = "22.06.2018 16:00";
String DATE_FORMAT = "dd.MM.yyyy HH:mm";
String strDate;
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Dhaka"));
Date gmt = sdf.parse(serverDate);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
strDate = sdf.format(gmt);
System.out.println(strDate); // 22.06.2018 10:00
}