【问题标题】:i'm getting 12:00am instead of 12:00pm in android studio what should i do? [duplicate]我在 android studio 中的时间是上午 12:00 而不是下午 12:00 我该怎么办? [复制]
【发布时间】:2021-11-14 17:50:15
【问题描述】:
public static String getTime(String time) {

    String ampmTime = null;
    SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss", Locale.getDefault());
    Date dt;
    try {
        dt = sdf.parse(time);
        SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a", Locale.getDefault());
        if (dt != null) {
            ampmTime = sdfs.format(dt);
        }

    } catch (ParseException e) {
        e.printStackTrace();
    }

    return ampmTime;
}

在参数字符串中,我发送的是 12:00:00 格式,所以我希望它是 12:00pm 而不是 12:00am。其他时间正确显示,例如 13:30:00 到 1:30pm 。所以请帮帮我??

【问题讨论】:

  • 请考虑扔掉早已过时且臭名昭著的麻烦SimpleDateFormat和朋友。看看您是否可以使用desugaring 或将ThreeTenABP 添加到您的Android 项目中,以便使用现代Java 日期和时间API 的java.time。使用起来感觉好多了。
  • LocalTime.parse("12:00:00").format(DateTimeFormatter.ofPattern("hh:mm a", Locale.forLanguageTag("en-IN")))。根据要求产生12:00 PM。是的,确实如此,使用 java.time 您只需要一个格式化程序。请自己分解成适当数量的语句。

标签: java android date time


【解决方案1】:

here 所述,当使用 hh 时,您是在告诉格式化程序输入时间是上午/下午时间。使用 HH 进行 24 小时输入。

将格式改为:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());

【讨论】:

  • 你可以接受你认为它回答了你的问题的答案。
  • 感谢它现在正在工作。
  • 太棒了。将答案标记为已接受(答案旁边的复选标记)。这让人们知道它得到了正确的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
相关资源
最近更新 更多