Novo curso! Todo programador deveria aprender IA generativa!
Experimente uma aula grƔtis0
Converting time Error Java
Hello! I've been trying to convert AM and PM. An input would be something like "3:00 PM" and would output "15:00". It seems to work well until i input smth like "3:03 PM" which results in outputting "15:015". I immediately knew that i was replacing all in the string that has "3" with "15". But i don't know how to specifically replace only the hour "3" with 15 but not the minute. In other words, how can i replace a string of a specific index?
4 Respostas
+ 3
You should also check if the original time is AM or PM. You should not increase the hours when its morning.
Also the hours can be 1 digit or 2 digits. So substring is not very reliable.
I think the easiest way is to split the original string in multiple parts, something like this :
String time = "3:03 PM";
String[] parts = time.split(" ");
String[] hourMinute = parts[0].split(":");
System.out.println(hourMinute[0]);
System.out.println(hourMinute[1]);
System.out.println(parts[1]);
Then you can do your checks and changes, finally combine them again. I leave that part to you ;)
+ 3
You are right, its in that line. The issue is, that you are replacing all 3s with 15.
You could simply use substring again to cut off the hours:
String lt = ft + time.substring(1);
Just as a hint:
When you go on with your code you should consider, that "12:00 PM" will not give you a correct result. Also AM inputs won't deliver correct results.
+ 1
Here is the code.
time would be the input.
String ht = time.substring(0,1);
int newht = Integer.parseInt(ht);
newht = newht + 12;
String ft = Integer.toString(newht);
String lt = time.replace(ht,ft);
String fft = lt.replaceAll("PM", " ");
System.out.print(fft.trim());
I know that the error is in this line
String lt = time.replace(ht,ft); but i don't know how to fix it.
+ 1
Thank You all! I followed your methods and it works now!!