GregorianCalendar 构造函数要求以下内容:
GregorianCalendar(int year, int month, int dayOfMonth);
如何从我创建的对象中提取年、月和日。现在我正在使用 object.YEAR、object.MONTH 和 object.DAY_OF_MONTH,但这似乎没有给我正确的数字。
谢谢。
在这里,我根据用户点击的日历日期获取日期。然后用户可以在该日期中输入一些信息,这些信息存储在以 GregorianCalendar 为键的 HashMap 中。
cal.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
selectedDate = new GregorianCalendar(year, month, dayOfMonth);
在这里,我试图将 GregorianCalendar 年、月、日参数中的日期写入一个文件,以供稍后使用。
private void writeToFile() {
try
{
PrintWriter writer = new PrintWriter(file, "UTF-8");
for (GregorianCalendar gregObject: recipes.keySet()) {
String[] value = recipes.get(gregObject);
int y = gregObject.YEAR;
int m = gregObject.MONTH;
int d = gregObject.DAY_OF_MONTH;
writer.printf("%d %d %d ", y, m, d);
这是我从文件中读取的方式。当我从文件中读取时,我得到的年、月和日数字 1、2、5 是错误的。阅读的其余信息是正确的。
try
{
Scanner getLine = new Scanner(file);
Scanner tokenizer;
while (getLine.hasNextLine()) {
String line = getLine.nextLine();
tokenizer = new Scanner(line);
System.out.println(line);
while (tokenizer.hasNextInt()) {
int y1 = tokenizer.nextInt();
int m1 = tokenizer.nextInt();
int d1 = tokenizer.nextInt();
显然,我认为我错误地将年、月和日写入文件,因此我试图找出从 GregorianCalendar 对象中提取年、月和日的正确方法。
最佳答案
希望以下内容有所帮助:我使用 2015/06/10 作为输入。请注意月份值为 0(一月)- 11(十二月)。
package demo;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* Create on 4/3/16.
*/
public class TestCalendar {
public static void main(String [] args){
Calendar cal = new GregorianCalendar(2015,05,10); // Month values are 0(Jan) - 11 (Dec). So for June it is 05
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH); // 0 - 11
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
// Following must output 2015/06/10
System.out.printf("Provided date is %4d/%02d/%02d", year, month+1, dayOfMonth);
}
}
关于Android:从 GregorianCalendar 对象获取年、月、日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36392420/