我有两种获取UTC日期时间的方法。
方法:1)获取当前的UTC
public static String getUTCdatetimeAsString()
{
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd- HH:mm:ss", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
final String utcTime = sdf.format(new Date());
Log.e("utcTime : " ,""+ utcTime);
return utcTime;
}
在日志下方打印
utcTime : 2018-07-12- 12:37:09
方法:2)从日历中选择日期并获取UTC
public static String dateUTCToLocal() {
try {
SimpleDateFormat formatter = new SimpleDateFormat("d/M/yyyy HH:mm:ss", Locale.US);
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
Date value = formatter.parse("12/7/2018 06:07:09");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd- HH:mm:ss", Locale.US);
format.setTimeZone(TimeZone.getDefault());
return format.format(value);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
在日志下方打印
2018-07-12- 11:37:09
问题::获得不同的UTC日期(相差1小时),我不明白为什么我尝试了许多解决方案,但没有得到理想的结果,请提前帮助我们。
答案 0 :(得分:1)
尝试这种格式..
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd- HH:mm:ss a", Locale.US);
它显示了到下午1点的时间。
答案 1 :(得分:0)
该行“ format.setTimeZone(TimeZone.getDefault());”在“ sdf.setTimeZone(TimeZone.getTimeZone(“ UTC”));“时设置您当前所在的时区将时区设置为“ UTC”。如果要获得UTC时间,则应该坚持第二行