Calendar.getTime()到Date对象

时间:2016-10-12 07:39:08

标签: java android django date calendar

我有一个使用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时区来获取它。

2 个答案:

答案 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 格式为您提供日期,但您可以根据需要提供其他格式。