kalendae生成的日期字符串

/**
	 * 解析Kalendae插件录入的日期,返回list:{开始日期String,结束日期String} 输入的格式例如:
	 * "2012/06/01 - 2012/07/31" 输出为list:{"2012-06-01","2012-07-31"}
	 * 单个日期解析为list{当天日期,当天日期}
	 * 
	 * @param kalendaeStr
	 *            kalendae生成的日期字符串
	 * @return
	 */
	public static List<String> getKalendaeString(String kalendaeStr) {
		List<String> result = new ArrayList<>();
		String start = null;
		String end = null;
		String[] dates = kalendaeStr.split(" - ");
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		if (dates.length == 2) {
			Date startDate = parseDate(dates[0], 0);
			Date endDate = parseDate(dates[1], 0);
			if (startDate != null) {
				start = formatter.format(startDate);
			}
			if (endDate != null) {
				end = formatter.format(endDate);
			}
		} else if (dates.length == 1) {
			Date date = parseDate(dates[0], 0);
			if (date != null) {
				start = formatter.format(date);
				end = start;
			}
		}
		if (start == null) {// 开始格式错误则转为1970-1-1
			start = "1970-1-1";
		}
		if (end == null) {// 结束格式错误则转为当前日期
			end = formatter.format(new Date());
		}
		result.add(start);
		result.add(end);
		return result;
	}
	/**
	 * 内部方法,根据某个索引中的日期格式解析日期
	 * 
	 * @param dateStr
	 *            期望解析的字符串
	 * @param index
	 *            日期格式的索引
	 * @return 返回解析结果
	 */
	public static Date parseDate(String dateStr, int index) {
		DateFormat df = null;
		try {
			// 从数组第一种默认格式进行转换,转换失败则继续数组下一种类型
			df = new SimpleDateFormat(dateFormat[index]);
			return df.parse(dateStr);
		} catch (ParseException pe) {
			return parseDate(dateStr, index + 1);
		} catch (ArrayIndexOutOfBoundsException aioe) {
			// 数组越界则表示标准数组中的类型都不符合传入的字符串格式
			return null;
		}
	}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值