问题描述
我在解决这种幼稚的情况时陷入困境。 这是我将UTC转换为当地时间的目的。
public static DateTime timezoneAwareDate(Date date){
DateTime input = new DateTime(date,DateTimeZone.UTC);
DateTime output = input.withZone(DateTimeZone.getDefault());
Log.d(niftyFunctions.LOG_TAG,new SimpleDateFormat("yyyy-mmm-dd hh:mm").format(output.toDate()));
return output;
}
这是我的输入日期在UTC中的样子,来自服务器:
2015-07-28 16:30
但是,这是我从Log.d语句在IST上的手机上得到的内容:
2015-030-28 07:30
我为实际发生的事情而疯狂。 有什么帮助吗?
1楼
因此,我只使用本机库使用了无Joda解决方案。 这是功能
/**
* Returns localtime for UTC
*
* @param date
* @return
*/
public static Date timezoneAwareDate(String date){
// create simpledateformat for UTC dates in database
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date output;
// parse time
try{
output = simpleDateFormat.parse(date);
}catch (Exception e){
// return current time
output = new Date();
}
return output;
}