Eclipse在调试和运行时产生不同的输出

时间:2019-01-30 07:16:27

标签: java

//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星期三


编译(Ctrl + F11)

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星期三

1 个答案:

答案 0 :(得分:0)

为避免时区不同而出现问题,可以在代码中使用以下命令进行设置:

TimeZone.setDefault( TimeZone.getTimeZone("GMT+1") );

作为主要方法的第一句话。

该解决方案适用于我使用Java 8运行其余代码的情况