本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https://www.javastudy.cloud
时间与字符串之间的转换
其关键就在于SimpleDateFormat这个类
/** * 这种写法是开发中经常用到的写法,但却不是jdk推荐的写法, 下一个DEMO展示JDK推荐的写 * 法 * @Author https://www.javastudy.cloud * @CreateTime 2019/11/02 **/public class DateDemo { public static void main(String[] args) { // 这个类的精华就在于入参,可以转换不同的格式 // 注意这个类不是线程安全的,切记不可多个线程共享同一个实例 // 真要在多线程环境下使用可以使用 ThreadLocal存对应线程的 Format SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //字符串转时间 String myTimeStr = "2019-11-01 08:19:03"; try { Date myDate = format.parse(myTimeStr); System.out.println(myDate); } catch (ParseException e) { e.printStackTrace(); } //时间转字符串 Date currentDate = new Date(); String currentDateStr = format.format(currentDate); System.out.println(currentDateStr); }}
/**
* 这种写法是开发中经常用到的写法,但却不是jdk推荐的写法, 下一个DEMO展示JDK推荐的写
* 法
* @Author https://www.javastudy.cloud
* @CreateTime 2019/11/02
**/
public class DateDemo {
public static void main(String[] args) {
// 这个类的精华就在于入参,可以转换不同的格式
// 注意这个类不是线程安全的,切记不可多个线程共享同一个实例
// 真要在多线程环境下使用可以使用 ThreadLocal存对应线程的 Format
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//字符串转时间
String myTimeStr = "2019-11-01 08:19:03";
try {
Date myDate = format.parse(myTimeStr);
System.out.println(myDate);
} catch (ParseException e) {
e.printStackTrace();
}
//时间转字符串
Date currentDate = new Date();
String currentDateStr = format.format(currentDate);
System.out.println(currentDateStr);
}
}
运行结果:
jdk推荐的写法:
/** * @Author https://www.javastudy.cloud * @CreateTime 2019/11/02 **/public class DateDemo { public static void main(String[] args) { // 与上一个DEMO不一样的是初始化 // 一个是直接NEW,一个是用工厂的方式去获取 SimpleDateFormat format = (SimpleDateFormat) SimpleDateFormat.getDateTimeInstance();// 通过applyPattern来设定格式 format.applyPattern("yyyy-MM-dd HH:mm:ss"); //字符串转时间 String myTimeStr = "2019-11-01 08:19:03"; try { Date myDate = format.parse(myTimeStr); System.out.println(myDate); } catch (ParseException e) { e.printStackTrace(); } //时间转字符串 Date currentDate = new Date(); String currentDateStr = format.format(currentDate); System.out.println(currentDateStr); }}
/**
* @Author https://www.javastudy.cloud
* @CreateTime 2019/11/02
**/
public class DateDemo {
public static void main(String[] args) {
// 与上一个DEMO不一样的是初始化
// 一个是直接NEW,一个是用工厂的方式去获取
SimpleDateFormat format = (SimpleDateFormat) SimpleDateFormat.getDateTimeInstance();
// 通过applyPattern来设定格式
format.applyPattern("yyyy-MM-dd HH:mm:ss");
//字符串转时间
String myTimeStr = "2019-11-01 08:19:03";
try {
Date myDate = format.parse(myTimeStr);
System.out.println(myDate);
} catch (ParseException e) {
e.printStackTrace();
}
//时间转字符串
Date currentDate = new Date();
String currentDateStr = format.format(currentDate);
System.out.println(currentDateStr);
}
}
常用的时间格式及输出
节选字JDK,SimpleDateFormat源码
yyyy.MM.dd G 'at' HH:mm:ss z2001.07.04 AD at 12:08:56 PDT EEE, MMM d, ''yyWed, Jul 4, '01 h:mm a12:08 PM hh 'o''clock' a, zzzz12 o'clock PM, Pacific Daylight Time K:mm a, z0:08 PM, PDT yyyyy.MMMMM.dd GGG hh:mm aaa02001.July.04 AD 12:08 PM EEE, d MMM yyyy HH:mm:ss ZWed, 4 Jul 2001 12:08:56 -0700 yyMMddHHmmssZ010704120856-0700 yyyy-MM-dd'T'HH:mm:ss.SSSZ2001-07-04T12:08:56.235-0700 yyyy-MM-dd'T'HH:mm:ss.SSSXXX2001-07-04T12:08:56.235-07:00 YYYY-'W'ww-u2001-W27-3
获取常用的时间
这是一个静态工具类,可以直接使用
/** * * 一些和时间相关的工具类 * @Author https://www.javastudy.cloud * 公众号: 程序员学习大本营 * @CreateTime 2019/11/2 **/public class DateTools { /** * 获取上个月开始的时间 * 2019-10-01 00:00:00 * @return */ public static Date lastMonthBegin(){ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH,-1); calendar.set(Calendar.DAY_OF_MONTH, 1); clearTimeForCalendar(calendar); Date time = calendar.getTime(); return time; } /** * 获取 1970-01-01 00:00:00 这个时间点 * @return */ public static Date earlyDate(){ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR,1970); calendar.set(Calendar.MONTH,1); calendar.set(Calendar.DAY_OF_MONTH, 1); clearTimeForCalendar(calendar); Date time = calendar.getTime(); return time; } /** * 获取上个月结束的时间点 * 2019-10-31 23:59:59 * @return
/**
*
* 一些和时间相关的工具类
* @Author https://www.javastudy.cloud
* 公众号: 程序员学习大本营
* @CreateTime 2019/11/2
**/
public class DateTools {
/**
* 获取上个月开始的时间
* 2019-10-01 00:00:00
* @return
*/
public static Date lastMonthBegin(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH,-1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
clearTimeForCalendar(calendar);
Date time = calendar.getTime();
return time;
}
/**
* 获取 1970-01-01 00:00:00 这个时间点
* @return
*/
public static Date earlyDate(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,1970);
calendar.set(Calendar.MONTH,1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
clearTimeForCalendar(calendar);
Date time = calendar.getTime();
return time;
}
/**
* 获取上个月结束的时间点
* 2019-10-31 23:59:59
* @return
*/ public static Date lastMonthEnd(){ Calendar calendar = Calendar.getInstance(); //先获取到这个月的第一天 calendar.set(Calendar.DAY_OF_MONTH, 1); clearTimeForCalendar(calendar); //然后秒数减1就是上个月最后一刻了 calendar.add(Calendar.SECOND, -1); return calendar.getTime(); } /** * 获取这个月开始的时间 * 2019-11-01 00:00:00 * @return */ public static Date thisMonthBegin(){ Calendar calendar = Calendar.getInstance(); //先获取到这个月的第一天 calendar.set(Calendar.DAY_OF_MONTH, 1); clearTimeForCalendar(calendar); return calendar.getTime(); } /** * 获取这个月结束的时间 * 2019-11-30 23:59:59 * @return */ public static Date thisMonthEnd(){ Calendar calendar = Calendar.getInstance(); //先获取到这个月的第一天 calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.add(Calendar.MONTH,1); clearTimeForCalendar(calendar); calendar.add(Calendar.SECOND, -1); return calendar.getTime(); } /** * 获取今天开始的时间 * 2019-11-02 00:00:00 * @return */ public static Date thisDayBegin(){ Calendar calendar = Calendar.getInstance(); clearTimeForCalendar(calendar); return calendar.getTime(); } /** * 获取今天结束的时间 * 2019-11-02 23:59:59 * @return */ public static Date thisDayEnd(){ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH,1); clearTimeForCalendar(calendar); calendar.add(Calendar.SECOND, -1); return calendar.getTime(); } /** * 把date里面的时分秒给清空 * @param date * @return */ public static Date clearTimeForDate(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); clearTimeForCalendar(calendar); return calendar.getTime(); } /** * 把Calendar时间里面的时分秒给清空 * @param calendar */ public static void clearTimeForCalendar(Calendar calendar){ calendar.set(Calendar.HOUR_OF_DAY,0); calendar.set(Calendar.MINUTE,0); calendar.set(Calendar.SECOND,0); } }
*/
public static Date lastMonthEnd(){
Calendar calendar = Calendar.getInstance();
//先获取到这个月的第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
clearTimeForCalendar(calendar);
//然后秒数减1就是上个月最后一刻了
calendar.add(Calendar.SECOND, -1);
return calendar.getTime();
}
/**
* 获取这个月开始的时间
* 2019-11-01 00:00:00
* @return
*/
public static Date thisMonthBegin(){
Calendar calendar = Calendar.getInstance();
//先获取到这个月的第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
clearTimeForCalendar(calendar);
return calendar.getTime();
}
/**
* 获取这个月结束的时间
* 2019-11-30 23:59:59
* @return
*/
public static Date thisMonthEnd(){
Calendar calendar = Calendar.getInstance();
//先获取到这个月的第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.MONTH,1);
clearTimeForCalendar(calendar);
calendar.add(Calendar.SECOND, -1);
return calendar.getTime();
}
/**
* 获取今天开始的时间
* 2019-11-02 00:00:00
* @return
*/
public static Date thisDayBegin(){
Calendar calendar = Calendar.getInstance();
clearTimeForCalendar(calendar);
return calendar.getTime();
}
/**
* 获取今天结束的时间
* 2019-11-02 23:59:59
* @return
*/
public static Date thisDayEnd(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH,1);
clearTimeForCalendar(calendar);
calendar.add(Calendar.SECOND, -1);
return calendar.getTime();
}
/**
* 把date里面的时分秒给清空
* @param date
* @return
*/
public static Date clearTimeForDate(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
clearTimeForCalendar(calendar);
return calendar.getTime();
}
/**
* 把Calendar时间里面的时分秒给清空
* @param calendar
*/
public static void clearTimeForCalendar(Calendar calendar){
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
}
}
DEMO 总评时间与字符串之间的转换是开发中必不可少的技能, 有Calendar,Date,SimpleDateFormat等类的使用. 这块建议封装成工具类直接调用, 不用在代码里面重复造轮子, 少年,加油吧!!