我正在从提供时间戳的 Web 服务中检索数据,HH:mm:ss
我正在使用 SimpleDateFormat 将此字符串转换为日期对象,然后在需要时更改其时区,并将其从 24 小时转换为 12 小时时间。
问题:当输入时间为上午 12 点时,它看起来像这样00:00:00
,所以 12:05 是00:05:00
当我得到结果时,它们看起来像这样。
喂食的22:00:00
次数00:01:00
检索10:00 pm
到的时间0:01 am
我一直在环顾四周,看看是否有办法解决它,但我觉得我需要做一个特殊情况并自己解析字符串,如果它在小时的地方有一个 0。
任何帮助将不胜感激。
public String parseTime(String time) {
String mTime = null;
TimeZone thisTimeZone = TimeZone.getDefault();
TimeZone ourTimeZone = TimeZone.getTimeZone("America/Los_Angeles");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.US);
SimpleDateFormat sdfThisTimeZone = new SimpleDateFormat("K:mm:a",
Locale.getDefault());
Date date = null;
sdfThisTimeZone.setTimeZone(thisTimeZone);
sdf.setTimeZone(ourTimeZone);
try {
date = sdf.parse(time);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mTime = sdfThisTimeZone.format(date.getTime());
//**********************************New: Does Not Work********************************
DecimalFormat nft = new DecimalFormat("00"); mTime = nft.format(mTime);
//**********************************New **********************************************
return mTime;
}
我已经使用 DecimalFormat 尝试了该行,但我现在只是将它复制到代码中,看看它是否可以工作。不幸的是,它使我的应用程序崩溃。我发布的代码是在异步任务中执行的,所以我不确定这是否有任何区别,但仍然感谢您的帮助。最终我会解决这个问题。但就目前而言,这是一个仅在凌晨 12 点出现 1 小时的小细节,我将继续讨论更大的问题。如果有人能对此有所了解,那就太棒了。