当前位置: 首页 > 知识库问答 >
问题:

如何获取简单的日期而不是公历?[复制]

狄睿
2023-03-14

我正在创建预订系统,并尝试输入特定日期。我得到的不是我想要的2015年12月14日的简单格式,而是:

java.util.GregorianCalendar[time=1481500800000, areFieldsSet=true, areAllFieldsSet=true, lenient=true, zone=sun.util.calendar.ZoneInfo[id="Europe/London",偏移量=0, dstSavings=3600000, useDaylight=true,过渡=242, lastRur=java.util.SimpleTimeZone[id=Europe/London,偏移量=0, dstSavings=3600000, useDaylight=true, start一年=0, start Mode=2, start Month=2, start Day=-1, start DayOfWeek=1, start Time=3600000, start TimeMode=2, endMode=2, endMonth=9, endDay=-1, endDayOfWeek=1, endTime=3600000, endTimeMode=2], firstDayOfWeek=2,最小DayalDaysInFirstWeek=4, ERA=1, YEAR=2016, MONTH=11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=3,DAY_OF_MONTH=12,DAY_OF_YEAR=347,DAY_OF_WEEK=2

如何更改代码,使其只保存为简单日期而不是此日期?因为我认为这是我的节目崩溃的原因。

我的ReservationDAO类:

 package projects.dao.textdao;

 import java.io.BufferedReader;
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.nio.file.Path;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import projects.Reservation;
 import projects.Customer;
 import restaurant.dao.ReservationDAO;


 public class TextReservationDAO extends ReservationDAO {

static final char DELIMITER = ':';

@Override
public List<Reservation> loadReservations(Path path, List<Customer> customer) {
    List<Reservation> reservations = new ArrayList<>();

    try (BufferedReader br = new BufferedReader(new FileReader(path.toString()))) {
        int reservationId, customerId;
        Calendar dateTime;

        String[] temp;
        String line = br.readLine();

        while (line != null) {
            Customer reservationCustomer = null;
            temp = line.split(Character.toString(DELIMITER));
            reservationId = Integer.parseInt(temp[0]);

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
            String dateInString = temp[1];
            Date date = null;
            try {
                date = sdf.parse(dateInString);
            } catch (ParseException ex) {
                Logger.getLogger(TextReservationDAO.class.getName()).log(Level.SEVERE, null, ex);
            }
            dateTime = Calendar.getInstance();
            dateTime.setTime(date);

            customerId = Integer.parseInt(temp[2]);
            for (Customer c : customer) {
                if (c.getCustomerId() == customerId) {
                    reservationCustomer = c;
                }
            }

            line = br.readLine();
            Reservation r = new Reservation(reservationId, dateTime, reservationCustomer);
            reservations.add(r);
        }
        br.close();
    } catch (IOException ex) {
        Logger.getLogger(TextReservationDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
    return reservations;
}

@Override
public void storeReservations(Path path, List<Reservation> reservations) {
    try (PrintWriter output = new PrintWriter(path.toFile())) {
        for (Reservation r : reservations) {
            output.println(toFileString(r));
        }
        output.close();
    } catch (FileNotFoundException ex) {
        Logger.getLogger(TextReservationDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
}

private String toFileString(Reservation r) {
    String s
            = Integer.toString(r.getReservationId()) + DELIMITER
            + r.getDateString() + DELIMITER
            + Integer.toString(r.getCustomer().getCustomerId()) + DELIMITER;
    return s;
}


 }

我的预约课程:

 package projects;

 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.HashSet;
 import java.util.Set;

 public class Reservation {

private int reservationId;
private Calendar dateTime;
private Customer customer;


private static int numberOfReservations = 0;

public Reservation() {
    this.reservationId = 0;
    this.dateTime = null;
     this.customer = null;


    numberOfReservations++;
}

public Reservation(int reservationId, Calendar dateTime, Customer customer) {
    this.reservationId = reservationId;
    this.dateTime = dateTime;
      this.customer = customer;

    numberOfReservations++;
}

public static int getNumberOfReservations() {
    return numberOfReservations;
}

public int getReservationId() {
    return reservationId;
}

public void setreservationId(int reservationId) {
    this.reservationId = reservationId;
}

public Calendar getDateTime() {
    return dateTime;
}

public void setDateTime(Calendar dateTime)
{
    this.dateTime = dateTime;
}

    public Customer getCustomer()
{
    return customer;
}

public void setCustomer(Customer customer)
{
    this.customer = customer;
}     



public String getDateString() {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy MMM dd");
    String dateString = formatter.format(dateTime.getTime());
    return dateString;
}

@Override
public String toString() {
    return "Reservation id: " + getReservationId() + ", "
            + "Date/Time " + getDateTime() + "," +
    "customer: " + getCustomer();

}
 } 

共有2个答案

呼延才俊
2023-03-14
new Date().toString()

此获取默认日期格式

吴凯泽
2023-03-14

您可以使用SimpleDateFormat打印出您的Date对象

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
sdf.format(new Date());
 类似资料:
  • 本文向大家介绍iOS 获取公历、农历日期的年月日的实例代码,包括了iOS 获取公历、农历日期的年月日的实例代码的使用技巧和注意事项,需要的朋友参考一下 介绍三种方法获取 Date (NSDate) 的年月日。 用 date 表示当前日期。测试日期为公历 2017 年 2 月 5 日,农历丁酉年,鸡年,正月初九。 获取公历年月日 用 Calendar (NSCalendar) 获取公历年月日 结果

  • 如何从JSON获取而不是? 我想在Java程序中读取JSON,但当我得到一个JSON值,即一个数字时,我的解析器返回一个类型为的数字。 我想得到一个。我试图将long转换为整数,但java抛出了一个(不能转换为)。 我尝试了几件事,比如首先将long转换为字符串,然后用转换,但也不起作用。 我使用的是json simple 编辑: 我还是不能让它工作。这里有一个例子: jsonItem.get("

  • 我有以下代码: 我面临的问题对我来说似乎有点奇怪,因为这是我第一次处理POI。 单元格0的内容是一个日期,我对它没有任何问题,但单元格11的内容应该是一个数字,它返回用于获取内容的公式。以下是示例输出: 等等 我需要做的是显示单元格的实际内容,而不是公式。我肯定我错过了一些小东西,但作为一个完全的初学者,我无法发现它。

  • 我想用C#将一个自定义的公历日期转换为波斯日期。例如,我有一个包含以下内容的字符串: 现在我想拥有: 串PersianDate=2 1392; 或 字符串PersianDate=1392/08/02 谢谢

  • 问题内容: 我怎样才能得到一个与事件 的公共 谷歌日历?我有,但是没有必要。我不想更改其事件,也无需登录。 我想从中获取一个与我的/ 数据库同步。 试过了 但出现登录错误: 问题答案: 您的日历必须 公开 共享 ! 如果您仅共享 忙/闲 状态,则此方法有效: 详细信息 -仅当日历完全公开共享时,此wotrks 或者只是 忙碌 参数 orderby , sortorder 和 futureevent

  • 我想将Hijri日期转换为公历日期!我已经搜索过了,但不幸的是,我找到了一个将公历转换为Hijri的java类。我需要相反的。 HijriCalendar。爪哇:https://gist.github.com/fatfingers/6492017