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日的考试。为什么?
使用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
如果您还需要有关时间(小时、分钟、秒)的信息,请使用从LocalDate
到LocalDateTime
的一些转换
LocalDate.parse("2015-12-22").atStartOfDay() //2015-12-22T00:00
这是我在Java 8之前最喜欢的方式:
Date date = new GregorianCalendar(year, month - 1, day).getTime();
我会说这是一种比以下更干净的方法:
calendar.set(year, month - 1, day, 0, 0);
月份在日历中是以零为基础的。所以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对象?