How to convert 12 hours hh:mm a
into HH:mm
? When we converting this we are unable to get into 24 hours format. Here the time format pm to am is not converting when we assigned start time at 10pm and wake up time 7am. Here we are unable to get the total time. It's getting stopped at 12:00am and also we are getting the total time double from 10pm to 7am as 18 hours. when time is changing from 11:59pm to 00:00am "00:00am" is causing the problem here.
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;
}
}
Use these two method for convert second to 24hours format public static
Try this code