java中经常使用的日期格式化(全)
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 获取当前的日期格式为:yyyy-MM-dd HH:mm:ss
*
* @author Arthur(user_006)
* @version 1.0.0 2010/04/24 14:00(星期六)
*/
public class TimerUtil { /**
* 获取当前的日期 , 默认格式
*
* @return 当前的日期
*/
public synchronized static Date getCurrentCalendar() { Calendar calendar = Calendar.getInstance();
return calendar.getTime();
} /**
* 获取当前日期 , 格式yyyy-MM-dd , 如: 2010-04-24
*
* @return
*/
public synchronized static String getCurrentDate() { Calendar calendar = Calendar.getInstance(); StringBuffer sb = new StringBuffer(); sb.append(calendar.get(Calendar.YEAR)).append("-");
sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
sb.append(calendar.get(Calendar.DAY_OF_MONTH));
return sb.toString();
} /**
* 把字符形式的日期转换成Date类型 , 格式yyyy-MM-DD
*
* @param date
* 日期的字符串形式
*
* @return Data类型的日期
*/
public synchronized static Date convertToDate(String date) { DateFormat format = new SimpleDateFormat("yyyy-MM-DD"); try { return format.parse(date); } catch (ParseException e) { e.printStackTrace();
}
return null;
} /**
* 把日期转换为指定的格式
*
* @param date
* 要转换的日期
* @param pattern
* 转换的格式
* @return
*/
public synchronized static Date format(Date date, String pattern) { if (pattern != null && pattern.trim().length() > 0) { DateFormat format = new SimpleDateFormat(pattern); String stringDate = format.format(date); return TimerUtil.convertToDate(stringDate);
}
return null;
} /**
* 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss
*
* @param date
* 要转换的日期
* @return
*/
public synchronized static String convertToString(Date date) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(date);
} /**
* 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss
*
* @param date
* 要转换的日期
* @return
*/
public synchronized static String convertToStrShort(Date date) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.format(date);
} /**
* 将日期转换为字符串 , 格式yyyyMMddHHmmss
*
* @param date
* 要转换的日期
* @return
*/
public synchronized static String convertToString2(Date date) {
DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
return format.format(date);
} /**
* 将日期转换为指定格式的字符串
*
* @param date
* 要转换的日期
* @param formatText
* 转换的格式
* @return
*/
public synchronized static String convertToString(Date date,
String formatText) { DateFormat format = new SimpleDateFormat(formatText); Calendar calendar = Calendar.getInstance(); StringBuffer sb = new StringBuffer(); sb.append(calendar.get(Calendar.YEAR)).append("-");
sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
sb.append(calendar.get(Calendar.DAY_OF_MONTH)); return format.format(date);
} /**
* 获取本周一的日期
*
* @return
*/
public synchronized static Date getMondayOFWeek() { Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 这里设置从周一開始,若须要依据系统时区自己主动获取,则採用下边的方式 return calendar.getTime();
} /**
* 获取本周日日期
*
* @return
*/
public synchronized static Date getCurrentWeekday() { Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, getCurrentPlus());// 把当前日期的DATE加上当前日期与本周日之间相差的天数
return calendar.getTime();
} /**
* 获取上周日的日期
*
* @return
*/
public synchronized static Date getPreviousWeekday() { Calendar calendar = Calendar.getInstance();
// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
calendar.add(Calendar.DATE, getCurrentPlus() - 7);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
return calendar.getTime();
} /**
* 获取上周日的日期
*
* @return
*/
public synchronized static Date getPreviousMonday() { Calendar calendar = Calendar.getInstance();
// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
calendar.add(Calendar.DATE, getCurrentPlus() - 13);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
return calendar.getTime();
} /**
* 获取上周日的日期
*
* @return
*/
public synchronized static Date getNextWeekday() { Calendar calendar = Calendar.getInstance();
// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
calendar.add(Calendar.DATE, getCurrentPlus() + 1 + 6);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
return calendar.getTime();
} /**
* 获取上周日的日期
*
* @return
*/
public synchronized static Date getNextMonday() { Calendar calendar = Calendar.getInstance();
// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
calendar.add(Calendar.DATE, getCurrentPlus() + 1);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
return calendar.getTime();
} /**
* 获取当前日期与本周周日之间相差的天数
*
* @return
*/
public synchronized static int getCurrentPlus() { Calendar calendar = Calendar.getInstance();
int days = calendar.get(Calendar.DAY_OF_WEEK) - 1;// 在中国是已星期一作为一周的第一天,所以这里减1
return 7 - days;
} public synchronized static int getCurrentYear() { Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.YEAR);
} /**
* 返回指定日期的当月第一天
*
* @param date
* @return
*/
@SuppressWarnings("static-access")
public synchronized static Date getFirstDayInMonth(Date date) { Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(calendar.DATE, 1);
return calendar.getTime();
} /**
* 返回指定日期的当月最后一天
*
* @param date
* @return
*/
@SuppressWarnings("static-access")
public synchronized static Date getLastDayInMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date);
calendar.add(calendar.MONTH, 1);
calendar.set(calendar.DATE, 1);
calendar.add(calendar.DATE, -1); return calendar.getTime();
} /*
* 计算两个日期之间的天数
*/
public static int getDaysBetween(Calendar d1, Calendar d2) {
if (d1.after(d2)) {
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
int y2 = d2.get(Calendar.YEAR);
if (d1.get(Calendar.YEAR) != y2) {
d1 = (Calendar) d1.clone();
do {
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天数
d1.add(Calendar.YEAR, 1);
} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}
/*
* 计算两个日期之间的时间
*/
public static String getGapTime(Date createTime) {
// TODO Auto-generated method stub
Calendar d2 = Calendar.getInstance();
Calendar d1 = Calendar.getInstance();
d1.setTime(createTime);
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
if (days < 1) {
int hour = d2.get(Calendar.HOUR_OF_DAY)
- d1.get(Calendar.HOUR_OF_DAY);
if (hour < 1) {
int munites = d2.get(Calendar.MINUTE) - d1.get(Calendar.MINUTE);
if (munites == 0) {
return "刚刚";
} else {
return munites + "分钟前";
}
} else {
return hour + "小时前";
} } else {
return days + "天前";
}
} //加天数
public static String addDays(int day){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, day);
StringBuffer sb = new StringBuffer();
sb.append(calendar.get(Calendar.YEAR)).append("-");
sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
sb.append(calendar.get(Calendar.DAY_OF_MONTH));
return sb.toString();
} //加年份
public static String addYears(String now, int year) throws ParseException{
Calendar fromCal=Calendar.getInstance(); DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date date=dateFormat.parse(now);
fromCal.setTime(date);
fromCal.add(Calendar.YEAR, year); return dateFormat.format(fromCal.getTime());
} //加天数(特定时间)
public static String addDate(String now, int day) throws ParseException{
Calendar fromCal=Calendar.getInstance(); DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date date=dateFormat.parse(now);
fromCal.setTime(date);
fromCal.add(Calendar.DATE, day); return dateFormat.format(fromCal.getTime());
} /**
* 格多少时间
* @throws ParseException
*/ @SuppressWarnings("deprecation")
public static void main(String[] args) throws ParseException {
System.out.println(TimerUtil.addYears("2008-12-01",7));
}
/*public static void main(String[] args) {
String createDate = "2008-12-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
try {
Date date = sdf.parse(createDate);
Calendar cl = Calendar.getInstance();
cl.setTime(date);
cl.add(Calendar.DATE,31);
String temp = "";
temp = sdf.format(cl.getTime());
System.out.println(temp);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}*/
}
java中经常使用的日期格式化(全)的更多相关文章
- Java中如何判断一个日期字符串是否是指定的格式
判断日期格式是否满足要求 import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date ...
- easyui datagrid 中序列化后的日期格式化
1.在easyui datagrid 中序列化后的日期显示为:/Date(1433377800000)/ 2.格式化后的显示为: 2015-06-04 08:30:00 3.使用代码如下: 3.1. ...
- Java中关于Date等日期类的简单使用
Date Date类不常用,很多方法被废弃了,常用它的两个构造方法来new一个Date对象. Date d1 = new Date(); //不传任何参数,代表当前时间点 System.out.pri ...
- JAVA中计算两个日期时间的差值竟然也有这么多门道
上半年春招的时候,作为面试官,对于面试表现的不错的同学会要求其写一小段代码看看.题目很简单: 给定一个日期,然后计算下距离今天相差的天数. 本以为这么个问题就是用来活跃面试氛围的,但是结果却让人大跌眼 ...
- JAVA中String.format的用法 格式化字符串,格式化数字,日期时间格式化,
1.对整数进行格式化:%[index$][标识][最小宽度]转换方式 我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解, ...
- Java中使用LocalDate根据日期来计算年龄
Java中和日期直接相关的类有很多,平时最常用到的就是java.util package下面的Date和Calendar,需要用到格式的时候还会用到java.text.SimpleDateFormat ...
- java中计算两个日期之间天数的程序设计。
//用java编写出一个以下方法计算两个日期之间天数的程序设计. import java.util.regex.Matcher; import java.util.regex.Pattern; pub ...
- Java中json前后端日期传递处理
这里推荐2种方式 依赖包 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifa ...
- Java 中,如何对日期进行加减操作
今天在做项目时,遇到了对时间的加减进行操作的需求,根据传入的日期字符串,操作参数("+","-"),加数(要操作的天数),对日期进行加减操作,经查询资料,自己写 ...
随机推荐
- 利用青瓷布局自定义加载的场景,而不是自己改写qici-loading
加载界面如果全部通过自己手动布局不仅不美观,还很难控制.借用原生的场景切换加载效果,来实现我们游戏的加载效果. 没有做加载修改的原来的加载顺序: 黑乎乎界面->(游戏定制的加载)你的第一个场 ...
- Day15 HTML补充、初识JavaScript
一.上节回顾 上节回顾: HTML 头部信息:编码.title.style.link(导入css文件) 身体: 内联 块级 --->inline-block(既有内联效果又有块级效果) a标签: ...
- 获取网络图片的大小 改变 图片色值 灰度什么的方法集合-b
直接上代码了 头文件 // 图片处理 0 半灰色 1 灰度 2 深棕色 3 反色 +(UIImage*)imageWithImage:(UIImage*)image grayLevelTy ...
- call和apply还有bind
有图有真相 function myfun1(){ //这是私有属性 var private1 = "这是私有属性1"; var privateMethod = function() ...
- 当我们在谈论 DevOps,我们在谈论什么?
Cloud Insight 携手 BearyChat:打造适合运维人员的团队协作工具 走过 C 轮的 OneAPM,旗下的产品已经日渐丰满,从应用性能监控的 Application Insight 到 ...
- Delphi在win7/vista下写注册表等需要管理员权限的解决方案
看到论坛好多人问win7下写注册表的问题,我结合自己的理解写了一点东西,首先声明一下,本人初学Delphi,水平有限,大家见笑了,有什么不对之处请老鸟多指点. [背景]win7/Vista提供的UAC ...
- eclipse配置hadoop的错误
配置好eclipse,在执行run on hadoop的时候,提示11/03/29 16:47:59 WARN conf.Configuration: DEPRECATED: hadoop-site. ...
- Eclipse没法自动补全代码解决
Eclipse没法自动补全代码解决 Eclipse无法自动补全代码解决 Window->Java->Editor->Content Assist->Advanced
- bzoj1212
trie树最基本的应用了不难得到f[i]=f[j] if (s[j+1~i]∈dictionary);可以用trie树匹配 ..] of boolean; son:..,..] of longint; ...
- Linux Shell编程(24)——命令替换
命令替换 将会重新分配一个命令[1]甚至是多个命令的输出; 它会将命令的输出如实地添加到另一个上下文中. [2]使用命令替换的典型形式是使用后置引用(`...`). 后置引用形式的命令(就是被反引号括 ...