2016-06-02 3 views
-2

Как конвертировать 12 часов hh:mm a в HH:mm? Когда мы конвертируем это, мы не можем получить формат 24 часа. Здесь формат времени pm to am не преобразуется, когда мы назначили время начала в 10 вечера и время пробуждения 7 утра. Здесь мы не можем получить общее время. Он останавливается в 12:00, а также мы получаем общее время с 10 до 7 утра в течение 18 часов. когда время меняется с 23:59 до 00:00 «00:00 утра» вызывает здесь проблему.Конвертировать 12 часов до 24 часов

public class Wakeup extends Activity { 
ImageButton home, back, up_arw2, up_arw1, up_arw3, down_arw4, down_arw5, down_arw6; 
TextView hours, minutes, ampm; 
Button save_btn; 
SharedPreferences timepreference; 
SharedPreferences.Editor edittime; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.wakeup_time); 
    hours = (TextView) findViewById(R.id.hours); 
    minutes = (TextView) findViewById(R.id.minutes); 
    ampm = (TextView) findViewById(R.id.ampm); 
    home = (ImageButton) findViewById(R.id.home); 
    save_btn = (Button) findViewById(R.id.save_btn); 
    timepreference = getSharedPreferences("CHILDTIME", MODE_PRIVATE); 
    Calendar c = Calendar.getInstance(); 
    SimpleDateFormat df = new SimpleDateFormat("HH:mm a"); 
    String formattedTime = df.format(c.getTime()); 
edittime = timepreference.edit(); 
    home.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(getApplicationContext(), Settings.class)); 
     } 
    }); 

    back = (ImageButton) findViewById(R.id.back); 
    back.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(getApplicationContext(), Settings.class)); 
     } 
    }); 
    up_arw2 = (ImageButton) findViewById(R.id.up_arw2); 
    up_arw2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int timenum = Integer.parseInt(hours.getText().toString()); 
      if (timenum == 11) { 
       if (ampm.getText().toString().equals("AM")) { 
        ampm.setText("PM"); 
        timenum++; 
        hours.setText(String.valueOf(timenum)); 
       } else { 
        ampm.setText("AM"); 
        timenum++; 
        hours.setText(String.valueOf(timenum)); 
       } 
      } else { 
       timenum++; 
       hours.setText(String.valueOf(timenum)); 
       down_arw4.setClickable(true); 
      } 
      if (timenum > 12) { 
       hours.setText("1"); 
      } 
     } 
    }); 
    down_arw4 = (ImageButton) findViewById(R.id.down_arw4); 
    down_arw4.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int timenum = Integer.parseInt(hours.getText().toString()); 
      if (timenum == 1) { 
       hours.setText("12"); 
      } else { 
       timenum--; 
       hours.setText(String.valueOf(timenum)); 
      } 
     } 
    }); 
    up_arw3 = (ImageButton) findViewById(R.id.up_arw3); 
    up_arw3.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int timenum = Integer.parseInt(minutes.getText().toString()); 
      if (timenum == 59) { 
       minutes.setText("00"); 
      } else { 
       timenum++; 
       minutes.setText(roundedmin(String.valueOf(timenum))); 
      } 
     } 
    }); 
    down_arw5 = (ImageButton) findViewById(R.id.down_arw5); 
    down_arw5.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int timenum = Integer.parseInt(minutes.getText().toString()); 
      if (timenum == 0) { 
       minutes.setText("59"); 
      } else { 
       timenum--; 
       minutes.setText(roundedmin(String.valueOf(timenum))); 
       up_arw3.setClickable(true); 
      } 
     } 
    }); 
    down_arw6 = (ImageButton) findViewById(R.id.down_arw6); 
    down_arw6.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ampm.setText("PM"); 
     } 
    }); 
    up_arw1 = (ImageButton) findViewById(R.id.up_arw1); 
    up_arw1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ampm.setText("AM"); 
     } 
    }); 

    save_btn.setOnClickListener(new View.OnClickListener() { 
     Date date; 
     long gottimesss,millisecndslong; 
     @Override 
     public void onClick(View v) { 
      SimpleDateFormat displayFormat = new SimpleDateFormat("HH:mm"); 
      SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a"); 
      try { 
       date = parseFormat.parse(hours.getText().toString() + ":" + minutes.getText().toString() + " " + ampm.getText().toString()); 
       String gottime = displayFormat.format(date); 
       String[] timedivided = gottime.split(":"); 
       String gothr = timedivided[0]; 
       long gotlong = TimeUnit.HOURS.toMinutes(Long.parseLong(gothr)); 
       String gotmin = timedivided[1]; 
       int gotintmin = Integer.parseInt(gotmin); 
       gottimesss=gotlong+gotintmin; 
       millisecndslong=TimeUnit.MINUTES.toMillis(gottimesss); 
       convertSecToHoursMinute(millisecndslong); 
       Log.d("GOtssss", String.valueOf(millisecndslong)); 
       Log.d("timing", ""); 
      } catch (ParseException e) { 
       e.printStackTrace(); 
      } 
edittime.putLong("savedwakeuptime", millisecndslong); 
edittime.commit(); 
startActivity(new Intent(getApplicationContext(), Home.class)); 
     } 
    }); 
} 
String convertSecToHoursMinute(long Sec) { 
    long hours = Sec/3600; 
    long minutes = (Sec % 3600)/60; 
    long seconds = (Sec % 3600) % 60; 

    String amPm = "am"; 
    if (minutes == 60) { 
     minutes = 0; 
     hours = hours + 1; 
    } 
    if (hours == 12) { 
     amPm = "pm"; 
    } 
    if (hours == 0) { 
     hours = 12; 
    } 
    if (hours > 12) { 
     hours = hours - 12; 
     amPm = "pm"; 
    } 
    Log.d("Timingdata",setZeroBeforeNine(hours) + ":" + setZeroBeforeNine(minutes) + " " + amPm); 
    return setZeroBeforeNine(hours) + ":" + setZeroBeforeNine(minutes) + " " + amPm; 
} 

public static String setZeroBeforeNine(long digit) { 
    try { 
     if (digit <= 9) { 
      return "0" + digit; 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return "" + digit; 
} 

public static String roundedmin(String min) { 
    if (min.length() == 1) { 
     min = "0" + min; 
    } 
    return min; 
} 
} 
+5

Что вы пробовали? Вам удастся получить помощь в stackoverflow, если вы покажете код, который вы написали, который не работал. – DavidS

+0

Пожалуйста, покажите свой код. Это значительно разъяснит ваш вопрос. – 4castle

+4

Возможный дубликат [Как конвертировать 24-х часовой формат в формат 12 часов?] (Http://stackoverflow.com/questions/6907968/how-to-convert-24-hr-format-time-in-to- 12-hr-format) – piyushj

ответ

0

Используйте эти два метода для преобразования второй в 24hours формате публичного статического

String convertSecToHoursMinute(long Sec) { 
     long hours = Sec/3600; 
     long minutes = (Sec % 3600)/60; 
     long seconds = (Sec % 3600) % 60; 
     String amPm = "am"; 
     if (minutes == 60) { 
      minutes = 0; 
      hours = hours + 1; 
     } 


     if (hours == 12) { 
      amPm = "pm"; 
     } 
     if (hours == 0) { 
      hours = 12; 
     } 
     if (hours > 12) { 
      hours = hours - 12; 
      amPm = "pm"; 
     } 
     return setZeroBeforeNine(hours) + ":" + setZeroBeforeNine(minutes) + " " + amPm; 
    } 

    /** 
    * To set Zero before digits if less than 9(for date and time) 
    * 
    * @param digit : Date and time before which 0 is placed if less than 9 
    * @return :return Digit placing 0 as prefix if digit is less than 9 
    */ 
    public static String setZeroBeforeNine(long digit) { 
     try { 
      if (digit <= 9) { 
       return "0" + digit; 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return "" + digit; 
    } 
+0

Я хочу изменить от секунд до миллисекунд – Android

+0

long millisecound = second * 1000; –

+0

, если вы удовлетворены моим ответом, пожалуйста, нажмите на правую зеленую кнопку и дайте мне repo –

-1

Попробуйте этот код

import java.text.SimpleDateFormat; 
import java.util.Date; 

    public class Main { 
     public static void main(String [] args) throws Exception { 
      SimpleDateFormat displayFormat = new SimpleDateFormat("HH:mm"); 
      SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a"); 
      Date date = parseFormat.parse("10:30 PM"); 
      System.out.println(parseFormat.format(date) + " = " + displayFormat.format(date)); 
     } 
} 
+0

Поскольку мы пробовали вышеуказанный код, здесь возникает проблема, когда приходит время до 12:00, оно принимает его как ноль, а общее значение становится равным нулю, а также мы конвертируем 24 часа в миллисекунды. – Android

Смежные вопросы