Android 日期转换为本地时区
您好,我转换的简单日期格式的方法,但它返回错误的输出时间像我需要这个 输入:2016-06-28008:19:05.721Z 输出应为:13:49:05 但是它回来了:08:19:05Android 日期转换为本地时区,android,android-studio,Android,Android Studio,您好,我转换的简单日期格式的方法,但它返回错误的输出时间像我需要这个 输入:2016-06-28008:19:05.721Z 输出应为:13:49:05 但是它回来了:08:19:05 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); Date newDate = null; try { newDate = format.pa
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
Date newDate = null;
try {
newDate = format.parse("2016-06-28T08:19:05.721Z");
} catch (ParseException e) {
e.printStackTrace();
}
format = new SimpleDateFormat("hh:mm a");
String date = format.format(newDate);
从
SimpleDateFormat
类使用此构造函数:从SimpleDateFormat
类使用此构造函数:将区域设置与模式一起传递给SimpleDateFormat
SimpleDateFormat sd = new SimpleDateFormat("EEEE dd MMM yyyy", Locale.ENGLISH);
将区域设置与模式一起传递给SimpleDataFormat
SimpleDateFormat sd = new SimpleDateFormat("EEEE dd MMM yyyy", Locale.ENGLISH);
更改解析模式
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
到
因此,输入时区实际上被考虑在内(而不仅仅是期望文本Z
)
对于格式化,将使用默认时区,并假设它是UTC+05:30,您将获得所需的输出。更改解析模式
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
Date newDate = null;
try {
newDate = format.parse("2016-06-28T08:19:05.721Z");
} catch (ParseException e) {
e.printStackTrace();
}
format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = format.format(newDate);
format .setTimeZone(TimeZone.getTimeZone("UTC"));
Date parsed = null; // => Date is in UTC now
try {
parsed = format .parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
TimeZone tz = TimeZone.getTimeZone("Asia/Kolkata");
SimpleDateFormat destFormat = new SimpleDateFormat("HH:mm:ss");
destFormat.setTimeZone(tz);
date = destFormat.format(parsed);
Log.e("date",date);
到
因此,输入时区实际上被考虑在内(而不仅仅是期望文本Z
)
对于格式化,将使用默认时区,并假设它是UTC+05:30,您将获得所需的输出
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
Date newDate = null;
try {
newDate = format.parse("2016-06-28T08:19:05.721Z");
} catch (ParseException e) {
e.printStackTrace();
}
format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = format.format(newDate);
format .setTimeZone(TimeZone.getTimeZone("UTC"));
Date parsed = null; // => Date is in UTC now
try {
parsed = format .parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
TimeZone tz = TimeZone.getTimeZone("Asia/Kolkata");
SimpleDateFormat destFormat = new SimpleDateFormat("HH:mm:ss");
destFormat.setTimeZone(tz);
date = destFormat.format(parsed);
Log.e("date",date);
我这样做就解决了……谢谢大家:)
我通过这样做解决了…谢谢大家:)将区域设置传递给格式输入是2016-06-28T08:19:05.721Z,为什么输出是13:49:05?您想做什么?请进一步解释。将区域设置传递给格式输入为2016-06-28T08:19:05.721Z,为什么输出为13:49:05?您想做什么?请多解释。