`
jin8000608172
  • 浏览: 139611 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java获取两个日期之间的年月(yyyy-MM)和年月日(yyyy-MM-dd)

阅读更多
public List<String> processToYYYYMMDD(String date1,String date2){
    	List<String> timeList=new ArrayList<String>();
    	if(date1.equals(date2)){
    		timeList.add(date1);
		    return timeList;
		}
		
		String tmp;
		timeList.add(date1);
		if(date1.compareTo(date2) > 0){//确保 date1的日期不晚于date2
			tmp = date1; date1 = date2; date2 = tmp;
		}
		
		tmp = format.format(str2Date(date1).getTime() + 3600*24*1000);
		timeList.add(tmp);
        int num = 0; 
        while(tmp.compareTo(date2) < 0){        	        
        	num++;
        	tmp = format.format(str2Date(tmp).getTime() + 3600*24*1000);
        	timeList.add(tmp);
        }
//        if(num == 0)
//        	System.out.println("两个日期相邻!");
    	return timeList;
    }
    
    private Date str2Date(String str) {
		if (str == null) return null;
		try {
			return format.parse(str);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
    
    public String[] getAllMonths(String start, String end){
        String splitSign="-";
        String regex="\\d{4}"+splitSign+"(([0][1-9])|([1][012]))"; //判断YYYY-MM时间格式的正则表达式
        if(!start.matches(regex) || !end.matches(regex)) return new String[0];
        
        List<String> list=new ArrayList<String>();
        if(start.compareTo(end)==0){
        	String[] result=new String[1];
        	result[0]=start;
        	return result;
        }
        
        if(start.compareTo(end)>0){
            //start大于end日期时,互换
            String temp=start;
            start=end;
            end=temp;
        }
        
        String temp=start; //从最小月份开始
        while(temp.compareTo(start)>=0 && temp.compareTo(end)<=0){
            list.add(temp); //首先加上最小月份,接着计算下一个月份
            String[] arr=temp.split(splitSign);
            int year=Integer.valueOf(arr[0]);
            int month=Integer.valueOf(arr[1])+1;
            if(month>12){
                month=1;
                year++;
            }
            if(month<10){//补0操作
                temp=year+splitSign+"0"+month;
            }else{
                temp=year+splitSign+month;
            }
        }
        
        int size=list.size();
        String[] result=new String[size]; 
        for(int i=0;i<size;i++){
            result[i]=list.get(i);
        }
        return result;
    }
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    js字符串日期yyyy-MM-dd转化为date示例代码

    最近遇到一个问题,就是获取表单中的日期往后台通过json方式传的时候,遇到Date.parse(str)函数在ff下报错: NAN 找了些资料,发现是由于Date.parse()函数对日期格式有要求:详细参考 Date.parse函数 对于js操作日期: ...

    js获取当前时间yyyy-mm-dd-hh-mm-ss

    在JavaScript中,获取当前时间并以“yyyy-mm-dd-hh-mm-ss”的格式展示是一项常见的任务,这在处理日期和时间的前端应用中非常常见。本文将深入探讨如何使用JavaScript来实现这一功能,并提供相关代码示例。 ...

    js将日期格式转换为YYYY-MM-DD HH:MM:SS

    1、百度不少js将日期格式转换为YYYY-MM-DD HH:MM:SS 。可是都略显复杂,所以这里总结了一下,自己找到的,方便自己学习和使用。 方法一: 项目源码: $(#createTime).text((new Date(jumpParams.createDate.time)....

    java代码验证日期格式正则表达式(包含闰年验证)带注释

    * "yyyy.MM","yyyy.MM.dd","yyyy.MM.dd HH:mm:ss" * "yyyy/MM","yyyy/MM/dd","yyyy/MM/dd HH:mm:ss" * "yyyy_MM","yyyy_MM_dd","yyyy_MM_dd HH:mm:ss" * @param sDate * @return false/true */

    input框中自动展示当前日期yyyy/mm/dd的实现方法

    input框中自动展示当前日期&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;input type=text id=input&gt; [removed] //获取input元素 var _input = document.getElementById('input'); var date = new Date();...

    js选择时间控件-方便实用

    onclick="SelectDate(this)" 年月日,默认格式yyyy-MM-dd onclick="SelectDate(this,'yyyy 年')" 年份 onclick="SelectDate(this,'yyyy 年 MM 月')" 年月 onclick="SelectDate(this,'yyyy\-MM\-dd')" 年月日 onclick...

    java计算两个时间相差月数

    java计算两个时间(yyyy-MM-dd HH:mm:ss)相差月数两个时间格式可为年月日时分秒

    匹配yyyy-mm-dd日期格式的的正则表达式

    1、合法的日期:MSDN上规定–在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间 查看http://msdn.microsoft.com/zh-cn/library/system.datetime...

    Javascript将字符串日期格式化为yyyy-mm-dd的方法

    ### Javascript将字符串日期格式化为yyyy-mm-dd的方法知识点总结 #### 知识点1:日期格式化 日期格式化是将日期以一种特定的格式展示出来,常见的格式包括"yyyy-mm-dd","mm/dd/yyyy"等。在不同的编程场景和业务...

    Ext扩展dateField时间控件,可以选择年月日、年月、年、月

    6. **国际化支持**:对于多语言应用程序,`dateField`扩展应支持不同地区的日期格式和语言,如美国的`MM/DD/YYYY`,欧洲的`DD/MM/YYYY`,以及中文环境下的`YYYY年MM月DD日`等。 现在我们来看`ExDateField.js`文件,...

    C#(ASP.NET)DateTime日期类型格式化显示

    &lt;ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " &gt; &lt;ITEMSTYLE WIDTH= "18% " &gt; 2.数据控件如DataGrid/DataList等的件格式化日期方法: e.Item.Cell[0].Text = Convert.ToDateTime...

    C# 最全的日期正则表达式,没有之一

    如果需要验证日期时间格式`yyyy-MM-dd HH:mm:ss`,可以添加时间部分的正则表达式: - `([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]`。 - 整合后的完整正则表达式为: - `^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-...

    JAVA获取年月日(格式:xxxx年xx月xx日)、获取最近一年的年月(格式:xxxx年xx月).docx

    在给定的文档中,有两个主要的知识点:获取当前日期并按照“xxxx年xx月xx日”的格式输出,以及获取最近一年的年月并按照“xxxx年xx月”的格式输出。下面将详细介绍这两个知识点。 1. 获取年月日(格式:xxxx年xx月...

    js验证日期格式,比较日期大小,判断两日期年月是否相同借鉴.pdf

    以下是一个函数示例,用于比较两个日期(格式为`yyyy-MM-dd`)的大小: ```javascript function compareDay(a, b) { // a 和 b 的格式为 yyyy-MM-dd var a1 = a.split("-"); var b1 = b.split("-"); var d1 = ...

    C#中获取时间的年月日的方法

    这里通过`ToString`方法可以将日期格式化为不同的字符串形式,其中`"yyyy-MM-dd"`表示四位数的年份、两位数的月份和日期,而`"yyyyMMdd"`则是一种更紧凑的格式。 2. **其他日期格式化示例**: ```csharp string ...

    根据输入的日期获取所属季度

    - 计算两个日期之间的天数差。 - 获取某个日期前后的日期。 - 计算某个月份有多少天。 2. **国际化与本地化**: - 不同国家和地区有不同的日期格式标准。 - 如何设置`SimpleDateFormat`以适应不同地区的日期格式...

    java 时间转换工具

    年月日格式可以和下面的交换 yyyyMMdd HH yyyyMMdd HHmm yyyyMMdd HH mm yyyyMMdd HH:mm yyyyMMdd HH:mm yyyyMMdd HH mm ss yyyyMMdd HH:mm:ss yyyyMMdd HH:mm:ss MM/dd MM-dd MM.dd HH HHmm HH mm HH:mm HH:mm...

    JS比较时间的大小

    本文将详细介绍如何利用JS编写一个实用的函数来比较两个时间戳的大小,该函数能够处理形如“YYYY-MM-DD HH:MM:SS”的时间格式。 #### 一、问题背景 在Web开发或后端服务中,经常需要对用户的操作时间进行记录和...

    日期操作类 java

    public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss"; // 格式:年-月-日 小时:分钟 public static final String FORMAT_TWO = "yyyy-MM-dd HH:mm"; // 格式:年月日 小时分钟秒 public ...

    自定义的 Date Time Picker 控件

    1. **数据结构设计**:为了支持不同的日期时间格式,如只显示年月、年周或年月日时分秒,我们需要设计一个合适的数据结构来存储这些信息。可以创建一个枚举,表示不同的日期时间格式,然后根据枚举类型构建相应的...

Global site tag (gtag.js) - Google Analytics