Calendar 我无法在Java 8 Micro Edition中设置AM_PM变量
我是一个自学Java的新手。作为一个更大项目的一部分,我正在运行代码来确定日历对象上的时间,然后在以后设置。我在互联网上搜索了一种设置AM_PM值的方法,但我无法让它工作。任何建议都会有帮助Calendar 我无法在Java 8 Micro Edition中设置AM_PM变量,calendar,java-me,Calendar,Java Me,我是一个自学Java的新手。作为一个更大项目的一部分,我正在运行代码来确定日历对象上的时间,然后在以后设置。我在互联网上搜索了一种设置AM_PM值的方法,但我无法让它工作。任何建议都会有帮助 package timethread; import javax.microedition.midlet.MIDlet; import java.util.Calendar; /** * * @author Jaydawg */ public class TimeThread extends MIDle
package timethread;
import javax.microedition.midlet.MIDlet;
import java.util.Calendar;
/**
*
* @author Jaydawg
*/
public class TimeThread extends MIDlet {
@Override
public void startApp() {
Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.AM_PM)); // Original value: it is '1' or PM
cal.add(Calendar.AM_PM, 0); // Attempt #1
System.out.println(cal.get(Calendar.AM_PM));
cal.set(Calendar.AM_PM, 0); // Attempt #2
System.out.println(cal.get(Calendar.AM_PM));
cal.set(Calendar.AM_PM, Calendar.AM); //Attempt #3
System.out.println(cal.get(Calendar.AM_PM));
cal.add(Calendar.AM_PM, Calendar.AM); //Attempt #4
System.out.println(cal.get(Calendar.AM_PM));
int min = cal.get(Calendar.MINUTE);
int sec = cal.get(Calendar.SECOND);
int hour = cal.get(Calendar.HOUR);
int AMPM = cal.get(Calendar.AM_PM);
System.out.println(AMPM);
String AMPMString = "AM";
if(cal.get(Calendar.AM_PM)==1){
AMPMString = "PM";
}
System.out.println("The time is " + hour + ":" + min + ":" + sec + " " + AMPMString);
}
我的结果如下:
1
1
1
1
1
1
The time is 1:20:42 PM
可能是Java 8 Micro Edition中的日历有问题 这对我来说适用于Java 7:
Calendar c = Calendar.getInstance();
c.set(Calendar.AM_PM, Calendar.AM);
System.out.println(c.get(Calendar.AM_PM));
c.set(Calendar.AM_PM, Calendar.PM);
System.out.println(c.get(Calendar.AM_PM));
它输出:
0
1
Oracle确认这是一个bug
@jaydawg您可以尝试其他Calendar.set()方法,也可以尝试使用Calendar.add()12小时或-12小时。你想要实现的目标并不直观,因此我不确定什么是适合你需要的最佳解决方案。