我正在使用 FQL 从 Facebook API 获取新闻源,该 FQL 将“created_time”字段作为 UNIX 时间戳返回。我正在使用这段代码将其转换为我认为的 ISO-8601 时间戳:
String getInitialCreatedTime = JOFeeds.getString("created_time");
long finalTimeStamp = Long.valueOf(getInitialCreatedTime);
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");
String finalCreatedTime = dateFormatter.format(new Date(finalTimeStamp * 1000L));
现在,finalCreatedTime
我想从字符串中提取 12 小时 (AM/PM) 格式的时间。
为此,我正在使用以下代码:
final String old_format = "yyyy-MM-dd'T'HH:mm:ssZ";
final String new_format = "EEE MMM d hh:mm aa yyyy";
String oldDateSring = finalCreatedTime;
SimpleDateFormat sdf = new SimpleDateFormat(old_format);
Date d = sdf.parse(oldDateSring);
sdf.applyPattern(new_format);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
和:
// GET THE TIME
SimpleDateFormat sdfTimeFormatter = new SimpleDateFormat("hh:mm aa");
String getTime = sdfTimeFormatter.format(cal.getTime());
feeds.setTime(getTime);
Log.e("TIME", getTime);
第一个代码块的结果是:2012-12-14T04:30:03+0530
// GET THE TIME
块的结果是04:30AM
它应该是什么时候04:30PM
。
我将不胜感激有关此的任何指示。也许,我实施错了?
编辑:我可能会补充一点,介于 12.00 PM 和 1.00 PM 之间的时间戳会得到正确处理,并按应有的方式显示 PM。