【发布时间】:2015-07-21 05:26:21
【问题描述】:
在我的 android 应用程序中,我必须解析格式为 EEE, dd MMM yyyy HH:mm:ss zzz 的日期。我正在使用以下方法从中提取时间。这很完美。但是时间总是以 GMT 格式显示,所以我必须将其转换为用户时区,因为我在解析之前在我的代码中添加了一行,代码是 inputFormatter.setTimeZone(TimeZone.getDefault());
由于这不起作用,我已将参数更改为 TimeZone.getTimeZone("UTC")、TimeZone.getTimeZone("Asia/Kolkata") 等,但没有任何效果,时间仍以 GMT 格式显示。
这实际上有什么问题?我该如何解决这个问题,任何帮助表示赞赏
public static String extractTime(String dateInput) {
Date date = null;
String time;
try {
DateFormat inputFormatter = new SimpleDateFormat(mFormat, Locale.getDefault());
date = inputFormatter.parse(dateInput);
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat outputFormatter = new SimpleDateFormat("HH:mm:ss");
time = outputFormatter.format(date);
return time;
}
更新
我尝试将时区设置为 outputFormatter 而不是 inputFormatter,但还是一样,输出没有变化。
示例:
输入:Tue, 21 Jul 2015 09:02:30 GMT
输出获取:05:02:30
【问题讨论】:
-
你应该将时区设置为
outputFormatter而不是inputFormatter。 -
@Codebender 没有变化,它是一样的
-
你能输入一个输入和它的预期输出,以及你实际得到的输出吗?
-
@Codebender 请检查问题我已添加当前输入和输出
-
请同时输入您的预期输出。和时区。我尝试将时区设置为 outputformatter,并且根据设置的时区接收到正确的时间。
标签: java android date datetime timezone