0

我正在从提供时间戳的 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 小时的小细节,我将继续讨论更大的问题。如果有人能对此有所了解,那就太棒了。

4

1 回答 1

0

字符串 getConvertedDateTime(字符串日期时间){

    String convertedDateTime = dateTime;

    if (convertedDateTime != null

            && !convertedDateTime.equalsIgnoreCase("")

            && !convertedDateTime.equalsIgnoreCase("null")) {

        try {

            SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");

            Calendar calendar = Calendar.getInstance();

            java.util.Date convertedDate = formatter
                    .parse(convertedDateTime);
        formatter.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
        convertedDateTime = formatter.format(convertedDate.getTime());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return convertedDateTime;
}
于 2013-01-17T08:04:49.103 回答