//Here is my code, My intention is to print the time in 24 Hour format
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.StringTokenizer;
public class Solution {
static String timeConversion(String s) {
Calendar c = new GregorianCalendar();
c.set(0, 0, 0, 0, 0, 0);
StringTokenizer st = new StringTokenizer(s, ":");
String hrs = st.nextToken();
String mins = st.nextToken();
String secs = st.nextToken();
c.set(Calendar.HOUR, Integer.parseInt(hrs));
c.set(Calendar.MINUTE, Integer.parseInt(mins));
c.set(Calendar.SECOND, Integer.parseInt(secs.substring(0, 2)));
if (secs.substring(2).equalsIgnoreCase("AM")) {
c.set(Calendar.AM_PM, Calendar.AM);
}
if (secs.substring(2).equalsIgnoreCase("PM")) {
c.set(Calendar.AM_PM, Calendar.PM);
}
return c.getTime().toString();
}
public static void main(String[] args) throws IOException {
System.out.println("12:00:00AM: " + timeConversion("12:00:00AM"));// 00:00:00
System.out.println("12:00:00PM: " + timeConversion("12:00:00PM"));// 12:00:00
System.out.println("07:05:45PM: " + timeConversion("07:05:45PM"));// 07:05:45PM
}
}
12:00:00 AM:IST 2(星期三)12月31日00:00:00
12:00:00 PM:IST 2星期三12月31日12:00:00
07:05:45 PM:IST 2星期三19:05:45星期三
12:00:00 AM:IST 2(星期三)12月31日12:00:00
12:00:00 PM:星期四1月1日00:00:00 IST 1
07:05:45 PM:IST 2星期三19:05:45星期三
答案 0 :(得分:0)
为避免时区不同而出现问题,可以在代码中使用以下命令进行设置:
TimeZone.setDefault( TimeZone.getTimeZone("GMT+1") );
作为主要方法的第一句话。
该解决方案适用于我使用Java 8运行其余代码的情况