java日期时间的运算

java日期时间的运算

由于最近在使用日期时间的加减算法(如加一天,加一年等等),所以整理了一下常用的日期时间的例子,javaJDk也是有提供了Calendar类包方便大家使用。不多说直接上代码~

1,当前时间的加减

` //指定时间输出格式
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);

    Date dt = new Date();
    System.out.println("当前时间:" + sdf.format(dt));

    Calendar rightNow = Calendar.getInstance();
    rightNow.setTime(dt);

    rightNow.add(Calendar.MINUTE,-30);//当时日期减30分钟
    System.out.println("减半小时:" + sdf.format(rightNow.getTime()));

    long timeInMillis = rightNow.getTimeInMillis();//将时间转成long类型

    rightNow.add(Calendar.MONTH,3);//(在刚才的结果上)再加3个月
    System.out.println("再加3个月:" + sdf.format(rightNow.getTime()));

    rightNow.add(Calendar.DAY_OF_YEAR,10);//(在刚才的结果上)再加10天       
    System.out.println("再加10天:" + sdf.format(rightNow.getTime()));`

2,两个带格式的时间相减的差

String currentTime = "2016-05-12 10:55:36";//获取当前时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now = df.parse(currentTime);//将带格式的时间变回long类型
java.util.Date date=df.parse("2016-05-12 23:59:59");
long l=date.getTime()-now.getTime();
long day= 0,hour =0,min=0,s =0;
if(l>=0){
    day=l/(24*60*60*1000);
    hour=(l/(60*60*1000)-day*24);
    min=((l/(60*1000))-day*24*60-hour*60);
    s=(l/1000-day*24*60*60-hour*60*60-min*60);
}

3,时间格式与时间戳相互转换

/**
     * 将时间转换为时间戳
     * @param format   "yyyy-MM-dd HH:mm:ss"
     * @param Stamp    时间戳
     * @return
     */
    public static Long dateToStamp(String format,String Stamp) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        Date date = null;
        try {
            date = simpleDateFormat.parse(Stamp);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return date.getTime();
    }
/**
     * 将时间戳转换为时间
     * @param format "yyyy-MM-dd HH:mm:ss"
     * @param s      时间戳
     * @return
     */
    public static String stampToDate(String format , String s){
        String res;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        long lt = new Long(s);
        Date date = new Date(lt);
        res = simpleDateFormat.format(date);
        return res;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值