Java以及Sql语句中常见的⽇期处理Java中的⽇期处理
Java中的⽇期相关的类有java.util.Date和java.util.Calendar两种。
java.util.Date:设计存在缺陷,常使⽤java.util.Calendar类。
1.1 java.util.Date:中常⽤⽅法
/*Date类中只⽤如下3个⽅法*/
Date now =new Date();// ⽤于获取当前⽇期
long time = Time();// ⽤于获取1970年以来的毫秒数
now.setTime(time);// 设置时间
1.2 Date类型⽇期的格式化
// 转换格式可以是"yyyy-MM-dd"(年⽉⽇)、"yyyy-MM-dd HH:mm:ss"(年⽉⽇时分秒)
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
Date now =new Date();
// 将⽇期转换成字符串
String nowStr= sdf.format(now);
java时间日期格式转换// 将字符串转换成时间
Date now = sdf.parse(nowStr);
1.3 Date类型⽐⼤⼩
Date start =new Date();
Date end=new Date();
// 使⽤before()或者after()⽅法,返回boolean值。
start.before(end);
start.after(end);
// 使⽤compareTo⽅法。(开始⼤于结束返回正值。)(开始⼩于结束返回负值。)(开始等于结束返回 0。)
startpareTo(end);
1.4 Calendar类型
// 获取Calendar实例
Calendar calendar = Instance();
// 将Calendar转换成Date类型
Date date = Time();
// 将Date转换成Calendar
calendar.setTime(date);
1.5 Calendar类型获取年⽉⽇时分秒
Calendar calendar = Instance();
// get() ⽅法获取年⽉⽇。
int year = (Calendar.YEAR);
int month = (Calendar.MONTH)+1;
int day = (Calendar.DAY_OF_MONTH);
int hour= (Calendar.HOUR_OF_DAY);
// set() ⽅法设置
// 设置2008年,11⽉。
calendar.set(Calendar.YEAR,2008);
calendar.set(Calendar.MONTH,10);
1.6 Calendar例⼦:设置时间
Date now =new Date();
Calendar dd = Instance();// 定义⽇期实例
dd.setTime(now);
dd.(Calendar.YEAR),dd.get(Calendar.MONTH),dd.get(Calendar.DATE),8,30,0);
now = dd.getTime();
2 Sql中对⽇期的处理(Sqlserver)为例
⽇期处理相关⽅法
1. GETDATE():⽤于获取当前⽇期时间。
2. DATEADD(mi, -510, GETDATE()):⽤于时间的计算。当前时间减去510分钟。
3. convert(char(10), ‘2020-02-20 08:30:30’, 120):⽤于格式化时间,保留年⽉⽇时分秒。
4. DATEPART(datepart,date):函数⽤于返回⽇期/时间的单独部分,⽐如年、⽉、⽇、⼩时、分钟等等。
2.1 DATEPART()函数,获取本⽉的相关记录。
如果 GETDATE() - date1不在 0到 DatePart(day,GetDate())-1 说明:date1不在本⽉内。
WHERE
DATEDIFF(day, date1,GETDATE())--从date1到今天的天数间隔
BETWEEN0
AND(DatePart(day,GetDate())-1)--这个⽉已经过去的天数
2.2 Sql语句中,格式化之后的⽇期是可以进⾏⽐较的。
CONVERT():是将⽇期转换成字符串格式
CAST():⽅法可以将字符串格式的⽇期类型,转换成⽇期。
// 只写了where⼦句。
// 判断time1的年⽉⽇,是否在time2和time3之间。
where
deleted =0
AND
convert(char(10), time1,120)
BETWEEN
convert(char(10), time2,120)AND convert(char(10), time3,120)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论