日期的处理(java,sql)

3 篇文章 0 订阅
2 篇文章 0 订阅

java处理日期

三种方式:

Date:最老的方式,主要提供时间戳转换

分析:用SimpleDateFormat 设置格式在String与Date之间转换

ps:操作繁琐,并且很多方法已被淘汰。

比较大小:转时间戳比较:dateD.getTime() >= today.getTime()

例子:

        String time = "2020-04-07 22:55:11 745";
        //格式要一致
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        Date dateTime = sdf.parse(time);
        System.out.println(dateTime);
Calendar:主流,主要提供操作时间的工具类

分析:可以将Date类型的数据转Calendar,或者直接set一个日期

ps:功能很多,操作方便,方便修改日期,比较日期等操作。

比较大小:直接使用功能比较:nowCalendar.before(lastCalendar) : nowCalendar<lastCalendar (没有is与jodatime相反)

缺点:转字符串还是需要SimpleDateFormat

例子:

        String time = "2020-04-07 22:55:11 745";
        //格式要一致
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        Date dateTime = sdf.parse(time);
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        //设置月份为1月
        calendar.set(Calendar.DAY_OF_MONTH,1);
joda-time:最新的方式,相对较高封装的工具类

分析:
缺点需要导入joda-time包;
优点支持string、date直接转DateTime,也支持DateTime直接转String,不需要SimpleDateFormat做中间转换。

比较大小:now.isBefore(last) :last在now之前,last<now

例子:

DateTime parse=DateTime.parse("2021-05-06");
String s=parse.toString("yyyy-MM-dd");

–参考–
date和calendar
date
joda-time
joda-time时间比较大小
localdate:另一种类似calendar
Joda与date和calendar的比较
Joda与java8新增时间类库的比较



SQL日期处理

四种sql:mysql,sqlserve,pgsql,sparcksql

mysql
sqlserve

格式化日期有两种:

CONVERT :将日期按规定的样式转换后, 存为指定大小的字符串
ps:样式有很多,常用120 是"年-月-日 时:分:秒" ,然后提供控制字符串大小截取部分。
例子:
获取当前时间的第前90天的年-月-日:2021-04-29
select convert ( varchar(10), dateadd ( day, -90, getdate() ),120)

FORMAT :将日期按指定格式转换
ps:相比上一种固定样式,这种更加灵活,也更简单
例子:
获取系统时间,转为到毫秒的格式
select format(SYSDATETIME(),‘yyyy-MM-dd hh:mm:ss fffffff’)

获取季度:DATEPART ( q, getdate())

pgsql

获取年月日:to

sparcksql

–参考–
sqlserve常用日期函数

sqlserve日期转格式化字符串
mysql常用日期函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值