我有一个使用UTC时区设置的日历实例,我需要是UTC,因为我要与UTC服务器同步。
我需要从这个Calendar创建一个Date对象,我使用Calendar.getTime()。
但是当我尝试打印Date对象时,我看到它使用不同的TimeZone(CEST而不是UTC)
TimeZone timeZone = TimeZone.getTimeZone("UTC");
Calendar cal = Calendar.getInstance(timeZone);
cal.setTime(timeMillisecond);
Date d = cal.getTime();
Log.d("TAG", d.toString());
编辑:
当我将日期对象传递给服务器时,我使用CEST时区而不是UTC时区来获取它。
答案 0 :(得分:0)
您可以使用sdf,设置其时区并相应地解析它。
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
try {
Date dt = sdf.parse(sdf.format(Calendar.getInstance()));
} catch (ParseException e) {
e.printStackTrace();
}
这对我有用。
答案 1 :(得分:0)
尝试以下代码,它将以UTC为您提供日期。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy dd,MM hh:mm:ss", Locale.getDefault());
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String utcTime = dateFormat.format(new Date(timeMillisecond));
Log.d("TAG", utcTime);
它会以 yyyy dd,MM hh:mm:ss 格式为您提供日期,但您可以根据需要提供其他格式。