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

从年、月、日创建java日期对象

公良天逸
2023-03-14
int day = Integer.parseInt(request.getParameter("day"));  // 25
int month = Integer.parseInt(request.getParameter("month")); // 12
int year = Integer.parseInt(request.getParameter("year")); // 1988

System.out.println(year);

Calendar c = Calendar.getInstance();
c.set(year, month, day, 0, 0);  

b.setDob(c.getTime());

System.out.println(b.getDob());  

输出为:

1988
1989年1月25 00:00:08日星期三

我通过了1988年12月25日的考试,但我得到了1989年1月25日的考试。为什么?

共有3个答案

夏兴平
2023-03-14

使用java。Java 8内置的时间框架

int year = 2015;
int month = 12;
int day = 22;
LocalDate.of(year, month, day); //2015-12-22
LocalDate.parse("2015-12-22"); //2015-12-22
//with custom formatter 
DateTimeFormatter.ofPattern formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate.parse("22-12-2015", formatter); //2015-12-22

如果您还需要有关时间(小时、分钟、秒)的信息,请使用从LocalDateLocalDateTime的一些转换

LocalDate.parse("2015-12-22").atStartOfDay() //2015-12-22T00:00
斜单鹗
2023-03-14

这是我在Java 8之前最喜欢的方式:

Date date = new GregorianCalendar(year, month - 1, day).getTime();

我会说这是一种比以下更干净的方法:

calendar.set(year, month - 1, day, 0, 0);
孔飞舟
2023-03-14

月份在日历中是以零为基础的。所以12月被解释为12月1日。使用

c.set(year, month - 1, day, 0, 0);  
 类似资料:
  • 问题内容: 输出为: 1988年 1月25 日星期三00:00:08 IST 1989 我过去了,但我得到了。为什么? 问题答案: 日历中的月份从零开始。因此,将12解释为12月+ 1个月。用

  • 问题内容: Oracle是否具有内置功能来根据其各个组成部分(年,月和日)创建仅对缺失数据返回null的日期? 我知道,但是我需要首先编写一个字符串,并且运算符和函数都无法轻松处理丢失的数据: 只要是我们最终和: 问题答案: 例如,您可以使用: 不幸的是,Oracle没有一种方法(如果可能)进行转换,否则将返回NULL。SQL Server最近为此目的而引入。 一种选择是为失败的转换编写带有异常处

  • 我需要一个可配置的格式作为输出。 我将永远只获得从“01”到“31”的日期字符串 我将永远只获得从“1000”到“9999”的年份字符串 我将永远只获得从“01”到“12”的月份字符串(永远不获得一月、二月等) 我知道SimpleDateFormat(format)可以在一定程度上起作用。 类似于:

  • 问题内容: 我目前正在开发一个显示文件的应用程序,并允许成员通过许多不同的参数来搜索这些文件,其中一个是日期范围。 我遇到的问题是数据库架构不是我自己开发的,数据库的创建者创建了一个“ date”表,其中包含“ day”,“ month”,“ year”字段。 我想知道如何从表中选择特定的日期,月份,年份,并在SQL中创建日期对象,以便可以比较用户使用BETWEEN输入的日期。 下面是日期表的结构

  • 问题内容: 我正在尝试将包含2007年12月1日等各个部分的日期转换为SQL Server 2005中的日期时间。我尝试了以下方法: 但这会导致日期错误。将三个日期值转换为正确的日期时间格式的正确方法是什么? 问题答案: 假设全部,如何:

  • 当我使用以下代码时,Object错误。 谁能告诉我如何从年、月和日的值中获取Date对象?