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

手动设置日期和时间-java

欧博简
2023-03-14
 public static List<Reservation> addReservations(List<Reservation> reservations, List<Customer> customers) {
    int newReservationId = Reservation.getNumberOfReservations() + 1;
    String startString = readString("Enter Reservation date");
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date date = null;
    try {
        date = sdf.parse(startString);
    } catch (ParseException ex) {
        Logger.getLogger(ProjectIncrement5.class.getName()).log(Level.SEVERE, null, ex);
    }
    Calendar dateTime = Calendar.getInstance();
    dateTime.setTime(date);

    listCustomers(customers, reservations);
    int reservationCustomerId = readInt("Enter Customer Id", Customer.getNumberOfCustomers(), 1);
    Customer reservationCustomer = customers.get(reservationCustomerId - 1);
    Reservation res = new Reservation(newReservationId, dateTime, reservationCustomer);
    reservations.add(res);
    return reservations;
}

预订类别:

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 Customer getCustomer()
{
    return customer;
}

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



public String setDateTime() {
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    String dateString = formatter.format(this.dateTime.getTime());
    return dateString;
}

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

}
}

这是保存到导致错误的文本文件中的内容:

1:java.util.GregorianCalendar[time=851385600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.zoneInfo[id=“欧洲/伦敦”,offset=0,dstSavings=3600000,usedayLight=true,transitions=242,lastrule=java.util.SimpleTimeZone[id=europe/London,offset=0,dstSavings=3600000,usedayLight=true DE=2,endmode=2,endmonth=9,endday=-1,enddayofweek=1,endtime=3600000,endtimemode=2]],firstdayofweek=2,最小daysinfirstweek=4,era=1,year=1996,month=11,week_ofyear=52,week_ofmonth=4,day_off_year=3,day_off_week_in_month=4,am_pm=0,hour=0,hour_off_day=0,minute=0,second=0,millisecond=0,

我认为错误发生在获取日历的实例时,但我不确定如何更容易地做到这一点,并修复这个问题。有人能帮忙吗?

共有1个答案

邹书
2023-03-14

问题是您将calendar.tostring()而不是实际日期存储到文本文件中。

看看你都发了些什么:

第一天Ofweek=2,最小天FirstWeek=4,ERA=1,年=1996,月=11,周=52,周=4,周=24,周=359,周=3,周=4,AM_PM=0,小时=0,周=0,分钟=0,秒=0,毫秒=0,Zone_offset=0,Dst_offset=0

那似乎是个正确的日期。我会说更多,这似乎是一个真正完整的约会,有很多信息不是吗???;)

我不知道这个日期应该如何存储,但是,例如,如果您想以dd/mm/yyyy的格式存储日期,请使用这几行代码检查它是否是有效的日期(您已经在代码中这样做了)。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
date = sdf.parse(startString);

检查后,如果startstring有效,则不需要创建任何calendar实例,只需将startstring写入文本文件。

没有。这个想法是:

  • 在Java类中,存储在特定的对象中(日历可以,但日期也可以)
  • 在文本文件中,通过字符串发送人类可读的日期。

很抱歉,我不能说得更具体,我无法执行您的代码,因为缺少许多部分(customerreadintlistcustomers等)。

 类似资料:
  • 当创建日历对象并使用SimpleDataFormat解析字符串来设置日期/时间时,是否可以在两行单独的代码中设置日期和时间?例如,在我的SQLite数据库中,日期(mm-dd-yyy)与时间(hh:mm)存储在一个单独的列中。做以下事情是否符合犹太教 第二个是卡尔。setTime line是否将日历对象的日期部分重置为现在,然后只更改时间?

  • 你可以查看或更改 Navicat Monitor 的日期和时间设置。若要配置此设置,请前往“配置”->“日期和时间”。 列出 Navicat Monitor 的日期和时间信息。你可以启用“使用 24 小时制”来使用 24 小时制系统。

  • 问题内容: 我想在Android应用程序中设置日期和时间。日期应为今天的日期,但默认情况下,文本字段中的时间应设置为6:00 AM。我已经阅读了很多链接,但其中大多数都显示了今天的时间和日期(例如:2016-03-28 11:53:55)。 问题答案:

  • 可设定日期与时间。 自动设定 连接至PlayStation®Network时,自动取得日期与时间的信息。 手动设定 可手动设定年/月/日/时/分/秒(12小时制时亦可设定AM/PM)。 轻触[OK]后,即会自00秒开始计数。 手动设定(通过互联网) 轻触[手动设定(通过互联网)],可连接互联网取得日期与时间的信息。

  • 问题内容: 我正在做一个自动化的查询。它需要查找最后一天晚上8点到晚上8点之间的所有交易。我当时正在考虑做这样的事情 对于自动查询,这很适合找出日期部分。但是变量的TIME部分是查询执行的当前时间。有没有一种快速简单的方法来将两个变量的时间部分硬编码为8:00 PM? 问题答案:

  • 让我一起学习一个新的内建对象:日期(Date)。该对象存储日期和时间,并提供了日期/时间的管理方法。 例如,我们可以使用它来存储创建/修改时间,或者用来测量时间,再或者仅用来打印当前时间。 创建 创建一个新的 Date 对象,只需要调用 new Date(),在调用时可以带有下面这些参数之一: new Date() 不带参数 —— 创建一个表示当前日期和时间的 Date 对象: let now =