android - 在 Android 的 TimePicker 中显示当前时间

标签 android time picker

我使用这段代码在 TimePicker 中显示当前时间,但我真的不知道,为什么它不能正确显示!?例如现在时间(系统时间)是下午 2:56,但它显示的是凌晨 2:56!。我该如何解决?谢谢。

 private long timer1 = 0; 
 ...

switch (view.getId()) {
        case R.id.add1: {
            if (timer1 == 0) {
                timer1 = getCurrentTime();
            }
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(timer1);

            TimePicker timePicker = (TimePicker) findViewById(R.id.tp_1);
            timePicker.setCurrentHour(calendar.get(Calendar.HOUR));
            timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));



            break;
         . ..              
        }

private long getCurrentTime() {
    Calendar calendar = GregorianCalendar.getInstance();
    return calendar.getTimeInMillis();
}

当我想用下面的方法将这个时间转换成字符串形式时,我也遇到了同样的问题:

private String convertTimeToString(long time) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(time);

    int hour = calendar.get(Calendar.HOUR_OF_DAY);
    //int hour = get;
    int minute = calendar.get(Calendar.MINUTE);

    String timeSet;
    if (hour > 12) {
        hour -= 12;
        timeSet = "PM";
    } else if (hour == 0) {
        hour += 12;
        timeSet = "AM";
    } else if (hour == 12) {
        timeSet = "PM";
    } else {
        timeSet = "AM";
    }

    String minutes;
    if (minute < 10) {
        minutes = "0" + minute;
    } else {
        minutes = String.valueOf(minute);
    }
    // Append in a StringBuilder
    return String.format("%s:%s %s", hour, minutes, timeSet);

}

请帮帮我!

最佳答案

已更新
1)错误的时间问题:尝试像这样编辑代码:

...
timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
...

2) 字符串表示问题:将日期/时间转换为字符串的一般方法如下:

String format = "hh:mm"; // or any other format - see note below
SimpleDateFormat formatter = new SimpleDateFormat(format);
formatter.format(yourDate);

或者当您使用 long 时间戳时,最后一行将是:

formatter.format(new Date(yourLongTimestamp));

有用的链接:
您可能会看到不同的日期/时间格式符号 here
测试您可能的不同格式模式here .

关于android - 在 Android 的 TimePicker 中显示当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840744/

相关文章:

Android 下载管理器 ETag 支持

java - 每当选择相邻选项卡时都会调用选项卡的 onCreateView 吗?

Android - 全屏而不移动内容

java - 从 Java 更新 MySQL DB 中的时间字段

javascript - 从日期字符串中获取时间

ios - SwiftUI 从选择器的字符串结果中设置绑定(bind)

android - Android效率和性能比较中的Hashmap vs Bundle

c++ - math.h pow 与手动功率性能

image - 如何在不使用 go-flutter 的情况下在 flutter 桌面中使用 image_picker 插件

ios - 无法弄清楚如何在 Swift 中使用闭包