我正在从webservice下载一些JSON数据。在这个JSON中,我有一些日期/时间值。 GMT中的所有内容。如何解析此日期字符串,以便结果Date对象在当前语言环境中?
我只得到格林尼治标准时间22:00,03:30的时间。 我希望它按国家/地区的时间格式显示,如上午9:00 /下午。 我是Android的新手,所以我使用了如下所示的方法,但它无法正常工作。
private static String getLocalTime(int hr,int min){ 字符串localTime ="&#34 ;;
Calendar gmt = Calendar.getInstance();
gmt.set(Calendar.HOUR, hr);
gmt.set(Calendar.MINUTE, min);
gmt.setTimeZone(TimeZone.getTimeZone("GMT"));
Calendar local = Calendar.getInstance();
local.setTimeZone(TimeZone.getDefault());
local.setTime(gmt.getTime());
int hour = local.get(Calendar.HOUR);
int minutes = local.get(Calendar.MINUTE);
boolean am = local.get(Calendar.AM_PM) == Calendar.AM;
String str_hr = "";
String str_min = "";
String am_pm = "";
if (hour < 10)
str_hr = "0";
if (minutes < 10)
str_min = "0";
if (am)
am_pm = "PM";
else
am_pm = "AM";
localTime = str_hr + hour + ":" + str_min + minutes + " " + am_pm;
返回localTime; }
答案 0 :(得分:0)
假设您的日期格式如下,
String date = "Wed, 04 Feb 15 08:38:32 GMT";
您可以先使用SimpleDateFormatter
解析它,Locale
设置为default
SimpleDateFormat formatDate = new SimpleDateFormat("EEE, dd MMM yy hh:mm:ss Z", Locale.getDefault());
(SimpleDateFormat
的{{3}})
如果您将其转换为Date
对象并打印它,那么它将在您的语言环境中显示时间。
Date d = formatDate.parse(date);
System.out.println(formatDate.format(d));
<强>输出强>,
Wed, 04 Feb 15 01:38:32 +0500
答案 1 :(得分:0)
首先为您想要的输出创建一个SimpleDateFormat
。
现在使用以下代码进行转换
desired_sdf.format(yourDate.getTime()+TimeZone.getDefault().getRawOffset())