废弃的方法(@Deprecated)
如果不想要java.util.Date中的时分秒数据,希望将它清零,只保留年月日,最简单的办法是
调用setHours,setMinutes,setSeconds方法清零。
Date now = new Date();
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
System.out.printf("%1$tF %1$tT\n",now);
不过这些方法已经被弃用了,但对绝大部分系统,都没问题。
如果讲究点儿,还是遵循建议不用为好。
java.util.Calendar
既然不建议用Date中的setHours,setMinutes,setSeconds方法对时分秒清零,java的代码中也提示了,可以改用Calendar.set(int field, int value)方法来对指定的域清零
Date now = new Date();
Calendar cal1 = Calendar.getInstance();
cal1.setTime(now);
cal1.set(Calendar.HOUR_OF_DAY, 0);
cal1.set(Calendar.MINUTE, 0);
cal1.set(Calendar.SECOND, 0);
cal1.set(Calendar.MILLISECOND, 0);
System.out.printf("%1$tF %1$tT\n", cal1.getTime());
java.time.LocalDate
上面的办法略显复杂啊,有没有理想简洁的途径让我少写点代码呢?
java8提供了一个新的类LocalDate,是一个不包含时区,ISO-8601 格式的日期类(比如 “2016-12-28”),LocalDate对象是个只读取的(immutable class),java.util.Date可以转换为LocalDate。
java.sql.Date是java.util.Date的子类,是为了配合SQL DATE而设置的数据类型。java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。
在java8中LocalDate可以转换成java.sql.Date
这两者一结合,也就可以将Date转换为时分秒清零0的对象,而且代码更简洁,一行就能搞定。
Date now = new Date();
LocalDate localDate=now.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Date newDate=java.sql.Date.valueOf(localDate);
System.out.printf("%1$tF %1$tT\n", newDate);
参考资料:
《Java 8 – Convert Date to LocalDate and LocalDateTime》
废弃的方法(@Deprecated)如果不想要java.util.Date中的时分秒数据,希望将它清零,只保留年月日,最简单的办法是 调用setHours,setMinutes,setSeconds方法清零。Date now = new Date();now.setHours(0);now.setMinutes(0);now.setSeconds(0);// 输出Date的日期和时间部分
Java
的
java
.
util
.
Date
类是
Java
初的时间类之一。该类的大部分方法已不推荐使用,取而代之的是
java
.
util
.
Calendar
类。不过你仍然可以使用
java
.
util
.
Date
类去表示某个时间。下面是一个如何实例化
java
.
util
.
Date
的例子:
java
.
util
.
Date
date
= new
java
.
util
.
Date
();
Date
实例包含了当前时间作为它的日期和时间。
你可以通过getTime()方法访问
java
.
util
.
Date
实例的日期和时间,比如像这样:
java
.
util
.
Date
date
= new
java
.
util
.D
Java
导出操作,
Date
类型数据导出到excel中只
保留
年月日
*
一、存在Student表格,里面包含logtime字段,是日期类型。
二、创建StudentData.class实体类,定义日期类型变量,代码如下:
@NoArgsConstructor
public class StudentData implements Serializable {
private static fin...
public static void main(String[] args) {
Simple
Date
Format sdf = new Simple
Date
Format("yyyy-MM-dd");
Calendar
calendar
=
Calendar
.getInstance();
Date
d...
Simple
Date
Format sdf = new Simple
Date
Format("yyyy-MM-dd");
String s = sdf.format(new
Date
());
Date
date
= s...
问题场景:
mysql数据库中字段logintime数据类型为
date
time。在
java
项目中直接获取
String time = map.get("logintime").toString();
time值为 2021-01-02 00:00:00.0
现在需要只显示
年月日
,不显示时间。
使用日期格式化工具Simple
Date
Format 工具类
String time = map.get("logintime").toString();
Simple
Date
Format sdf =new
方法一:直接ctrl+d,找到对应表的数据结构,手动更改,这会影响原始数据,如果没关系的话,可以采用
方法二:用sql语句:把表lizi里的日期字段改为
date
类型,强烈不建议采用,我只改一条数据就花了1s多
alter table lizi modify column 日期
date
方法三:参考博客:mysql只获取时间的
年月日
,这种方法
select
date
_format(日期,'%Y-%
### 回答1:
java
.
util
.
Date
是
Java
提供的日期和时间的类,它包含了日期和时间的信息。它可以表示从1970年1月1日00:00:00以来经过的毫秒数。由于
java
.
util
.
Date
是不可变的类,因此它的操作非常有限。
而
java
.sql.
Date
是
java
.
util
.
Date
的一个子类,它是专门用于操作数据库中日期类型数据的类。
java
.sql.
Date
继承了
java
.
util
.
Date
的大部分方法,但是它只保存
年月日
的信息,不包含具体的
时分秒
。
java
.sql.
Date
可以通过
java
.sql包提供的接口和类与数据库交互。
因为
java
.sql.
Date
是专为数据库而设计的,它有很多特定的用法。比如可以将
java
.sql.
Date
从数据库中读取出来,并用作
Java
程序中的日期类型。此外,它还可以将
Java
程序中的日期类型转换为数据库中的日期类型,方便进行数据库操作。
总的来说,
java
.
util
.
Date
是
Java
中常用的日期和时间类型,而
java
.sql.
Date
是专为数据库设计的日期类型,在与数据库交互时非常有用。
### 回答2:
java
.
util
.
Date
是
Java
中的一个类,它表示一个特定的时间点,包括年、月、日、时、分、秒等信息。它用于表示一个精确到毫秒的时间点,并且它没有与时区相关的信息。在使用
java
.
util
.
Date
时,我们可以通过构造方法设置指定的
年月日
时分秒
,也可以使用现有的时间点创建
对象
。
java
.sql.
Date
是
java
.
util
.
Date
的一个子类,用于在
Java
程序和数据库之间传递日期数据。它继承了
java
.
util
.
Date
的基本功能,同时还提供了一些用于处理数据库日期的特定方法。在
Java
中,
java
.sql.
Date
可以通过使用
java
.
util
.
Date
进行实例化,或者通过调用
java
.sql.
Date
的构造方法指定
年月日
。
java
.
util
.
Date
和
java
.sql.
Date
在功能上有着一些区别。首先,
java
.
util
.
Date
中包含的时间信息更加详细,可以表示年、月、日、时、分、秒、毫秒等。而
java
.sql.
Date
只包含年、月、日的信息,没有
时分秒
。其次,
java
.
util
.
Date
可以用于处理任意的时间点,而
java
.sql.
Date
只能用于处理日期,时间部分会被忽略。另外,由于
java
.sql.
Date
主要用于数据库交互,它具有特定的格式,可以与数据库中的日期字段进行交互。
在实际应用中,我们通常使用
java
.
util
.
Date
来表示一个具体的时间点,比如记录日志的时间、定时任务的执行时间等。而在与数据库交互时,我们可以使用
java
.sql.
Date
来传递、存储和检索日期数据。
### 回答3:
java
.
util
.
Date
和
java
.sql.
Date
都是
Java
中用于表示日期和时间的类,但在使用上有一些区别。
java
.
util
.
Date
是
Java
中最基本的日期和时间类,它包含了日期和时间的信息,可以表示从1970年1月1日00:00:00开始的时间戳。它可以表示精确到毫秒级别的时间,但是在处理日期和时间的各种操作时,它的功能相对较弱,需要借助其他类库进行处理。在
Java
8之后,
java
.
util
.
Date
已经被废弃,推荐使用新的日期和时间API(
java
.time包)。
java
.sql.
Date
是
java
.
util
.
Date
的一个子类,它用于在
Java
和数据库之间传递日期。它的底层实现是基于long类型的时间戳,但它对应的数据库类型是SQL中的
DATE
类型,只包含日期部分,不包含具体的时间信息。它的使用场景通常是在与数据库交互的过程中,需要将日期信息保存到数据库或从数据库中获取日期信息。
在实际使用中,如果我们需要进行日期和时间的大部分操作,推荐使用新的日期和时间API(
java
.time包),例如
Local
Date
、
Local
Time和
Local
Date
Time等类,它们提供了更多的功能和操作,而且更易于使用和理解。而对于与数据库交互时,如果数据库的数据类型是
DATE
类型,我们可以使用
java
.sql.
Date
来表示和传递日期信息。