我从服务器上得到时间戳 - “2014-03-05T13:00:07.341Z”
我想将此设置为android日历并将时间戳转换为am / pm。我已经完成了以下代码 -
TimeZone tz = TimeZone.getTimeZone("Asia/Calcutta");
Calendar cal1 = Calendar.getInstance(tz);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
dateFormat.setCalendar(cal1);
try{
cal1.setTime(dateFormat.parse("2014/03/05T13:00:07.341Z"));
}catch(Exception e){
e.printStackTrace();
}
我无法转换为上午/下午。怎么做?任何帮助将不胜感激。
答案 0 :(得分:4)
如果您想将转换为特定格式,您应该使用单独的DateFormat
。目前,您只展示了要解析的代码,并且只是在瞬间返回Date
。
您需要计算出输出格式所需的所有内容 - 例如,您希望如何表示日期以及您要使用的区域设置?
要调整的一些示例代码:
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
// Explicitly set it to UTC...
inputFormat.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
Date date = outputFormat.parse("2014/03/05T13:00:07.341Z", Locale.US);
// TODO: What format do you want, and what locale?
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd h:mm:ss a");
outputFormat.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
String text = outputFormat.format(date);
顺便说一下,如果有ParseException
那么应该做什么也不是很明确 - 但是你几乎可以不应该只记录它并继续如果什么也没发生。
请注意,加尔各答时区仅与输出相关 - 输入已经指定它是UTC。