日期/时间转换为当地时间

时间:2011-01-07 13:54:36

标签: blackberry

请参阅以下代码

Date date1 = new Date(HttpDateParser.parse(dateString);
int offset = TimeZone.getTimeZone("GMT+5:30").getRawOffset();
date1.setTime(date1.getTime() + offset);
String pattern = "yyyy-MM-dd hh:mma";
SimpleDateFormat date = new SimpleDateFormat(pattern);
String dateNow = date.format(date1);

它在模拟器中将精细转换为印度标准时间。 当我尝试在设备中使用时,时间保持不变。

2 个答案:

答案 0 :(得分:2)

HttpDateParser。解析在文档中说:

  

解析日期字符串并返回   自1月以来的毫秒数   1,1970,00:00:00 GMT。

如果您想在设备自己的时区中显示时间,则无需进行所有时区转换,只需直接使用SimpleDateFormat:

long timeSinceEpoch = HttpDateParser.parse(dateString);
String pattern = "yyyy-MM-dd hh:mma";
SimpleDateFormat date = new SimpleDateFormat(pattern);
String dateNow = date.formatLocal(timeSinceEpoch);

答案 1 :(得分:0)

 Parses a date string and returns the number of milliseconds since January 1, 1970, 00:00:00 GMT.

但是如果我将毫秒传递给Date()函数会发生什么。 它会自动将日期转换为用户的本地时区。欢呼声。

以下代码完成了一切。

 Date date1 = new Date(HttpDateParser.parse((String)kValue))

date1已转换为用户的本地时区。