文档章节

java 对日期的操作

远方__
 远方__
发布于 2016/12/23 12:35
字数 443
阅读 7
收藏 0
获得当前输入日期前(后)x天的日期,写了几种方法。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
 *
 * @ClassName: BeforeOrAfterDate
 *
 * @Description: 获得当前输入日期前(后)x天的日期
 * @author PineTree
 * @date 2014年12月29日 下午3:52:46
 * @version
 */
public class BeforeOrAfterDate {

    /**
     *
     * 查询当前日期前(后)x天的日期
     *
     * @param date 当前日期
     * @param day 天数(如果day数为负数,说明是此日期前的天数)
     * @return yyyy-MM-dd
     */
    public String beforNumDay(Date date, int day) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.DAY_OF_YEAR, day);
        return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
    }
    
    /**
     *
     * 查询当前日期前(后)x天的日期
     *
     * @param date 当前日期
     * @param day 天数(如果day数为负数,说明是此日期前的天数)
     * @return yyyyMMdd
     */
    public String beforNumberDay(Date date, int day) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.DAY_OF_YEAR, day);
        return new SimpleDateFormat("yyyyMMdd").format(c.getTime());
    }

    /**
     * 查询当前日期前(后)x天的日期
     *
     * @param millis 当前日期毫秒数
     * @param day 天数(如果day数为负数,说明是此日期前的天数)
     * @return long 毫秒数只显示到天,时间全为0
     * @throws ParseException
     */
    public long beforDateNum(long millis, int day) throws ParseException {
        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(millis);
        c.add(Calendar.DAY_OF_YEAR, day);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date(c.getTimeInMillis());
        Date newDate = sdf.parse(sdf.format(date));
        return newDate.getTime();
    }
    
    /**
     *  查询当前日期前(后)x天的日期
     *
     * @param millis 当前日期毫秒数
     * @param day 天数(如果day数为负数,说明是此日期前的天数)
     * @return yyyy-MM-dd
     */
    public String beforLongDate(long millis, int day) {
        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(millis);
        c.add(Calendar.DAY_OF_YEAR, day);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date(c.getTimeInMillis());
        return sdf.format(date);
    }
    
    public static void main(String[] args) {
        try{
            BeforeOrAfterDate bd = new BeforeOrAfterDate();
            long nowDate = System.currentTimeMillis();
            System.out.println("nowDate = " + nowDate);
            long beforDate = bd.beforDateNum(nowDate, 3);
            System.out.println("beforDate = " + beforDate);
            Date date = new Date(beforDate);
            System.out.println("毫秒值结果日期 = " + date.toLocaleString());
            System.out.println("yyyyMMdd结果日期  = " + bd.beforNumberDay(new Date(nowDate), 3));
            System.out.println("yyyy-MM-dd结果日期  = " + bd.beforNumDay(new Date(nowDate), 3));
            System.out.println("毫秒值获取日期结果 = " + bd.beforLongDate(nowDate, 3));
        }catch(Exception e) {
            e.printStackTrace();
        }    
    }
}

本文转载自:http://blog.csdn.net/sinat_27615265/article/details/51178138

上一篇: Redis 应用场景
下一篇: java反射
远方__
粉丝 0
博文 82
码字总数 0
作品 0
丰台
程序员
私信 提问
Java 8时间和日期API 20例

伴随lambda表达式、streams以及一系列小优化,Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。Java处理日期、日历和时间的方式一直为社区所诟病,将...

黄梦巍
2015/06/19
492
0
Java 8新的时间日期库的20个使用示例

除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API。Java对日期,日历及时间的...

清尘V
2015/03/17
224
0
浅谈Java SE新版本发布线路图

Java SE 9发布于2017年09月22日,也就是从这个版本开始,Java版本遵循半年一个版本的更新速度,Oracle将每三年指定一个版本作为长期支持(LTS)版本。到目前为止,已经发布了Java SE 10和Jav...

韬声依旧在路上
2018/09/30
0
0
利用Jakarta Commons Lang简化Java

Commons和Lang组件简介 Jakarta Commons 项目旨在实现可重用的 Java 组件。此项目包含数十个组件,用以简化 Java 的开发,每个组件负责满足一个特定需求。有大量的组件可用,且不仅限于在特定...

红薯
2008/12/04
3.3K
8
Java的九个知识点

关于java编程的知识,有人会问哪些是重要的知识点,不知道大家是否都知道呢? 现在给大家分享一下! 1.多线程并发 多线程是Java中普遍认为比较难的一块。多线程用好了可以有效提高cpu使用率,...

紫魅编程
2016/09/25
945
2

没有更多内容

加载失败,请刷新页面

加载更多

解答二进制求和

思路:创建一个新的字符串,用于记录原两个字符串每位相加的结果。 1、因为是从左到右计算,所以要把字符串先进行反转,用reverse()方法。 2、字符串对齐,采用补零的方法。 3、计算的时候...

无名氏的程序员
28分钟前
4
0
JSONUtils

package com.demo.utils;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Tr......

任梁荣
28分钟前
5
1
在jest中配置typescript

测试是报错: Property 'assign' does not exist on type 'ObjectConstructor' NodeJS已经是最新版了,但道理不需要polyfill。 然后发现是typescript的lib没有"es2015.core",说明ts-jest没有......

linsk1998
29分钟前
3
0
Redis实现分布式文件夹锁

缘起 最近做一个项目,类似某度云盘,另外附加定制功能,本人负责云盘相关功能实现,这个项目跟云盘不同的是,以项目为分配权限的单位,同一个项目及子目录所有有权限的用户可以同时操作所有...

逸竹小站
38分钟前
3
0
Andorid SQLite数据库开发基础教程(2)

Andorid SQLite数据库开发基础教程(2) 数据库生成方式 数据库的生成有两种方式,一种是使用数据库管理工具生成的数据库,我们将此类数据库称为预设数据库,另一种是使用代码生成的数据库。...

大学霸
58分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部