前言:小刘常在工作中遇到时间格式的转换,为了方便小刘将方法记录下来!
java格式转换
如有需要可改日期格式:如年与日 时分秒 可控。
/**
* 时间转字符串
* @param date
*/
public static String DateToString(Date date){
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sf.format(date);
}
/**
* Calendar cal = Calendar.getInstance();
* Date time = cal.getTime();
* cal.setTime(timestamp);//设置起时间
* 操作时间,加日期,减日期
*/
/**
* 字符串转date类型
* @param s
*/
public static Date StringToDate(String s){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String time = "2019-04-08 14:35:52";
Date date1 = null;
try {
date1 = sdf.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return date1;
}
测试类:
/**
* java日期转字符串
*/
@Test
public void t1() throws InterruptedException {
Date date = new Date();
System.out.println(date);
//日期转字符
String s1 = Utils.DateToString(date);
System.out.println("日期转字符\t"+s1);
//字符转日期
Date date1 = Utils.StringToDate(s1);
System.out.println("字符转日期\t"+date1);
//date 转 TimeStamp
Timestamp timestamp=new Timestamp(date.getTime());
System.out.println("date 转 TimeStamp\t"+timestamp);
//timeStamp 转 date
//父与子的关系
Date dates = new Timestamp(System.currentTimeMillis());
System.out.println("timeStamp 转换 date\t"+dates);
}
温馨提示:Calendar 类操作时间,进行年月日的增减操作
测试:举个例子
@Test
public void fasdf(){
Timestamp timestamp=new Timestamp(System.currentTimeMillis());
System.out.println("时间戳"+timestamp.getTime());
System.out.println("当前时间"+timestamp);
Calendar cal = Calendar.getInstance();
Date time = cal.getTime();
cal.setTime(timestamp);//设置起时间
System.out.println("原始"+cal.getTime().getTime());
System.out.println("当时日期----"+ Utils.DateToString(cal.getTime()));
/**
* 减少半年
*/
cal.add(Calendar.MONTH,-6);//日期减少6个月
System.out.println("减少半年的时间戳"+cal.getTime().getTime());
System.out.println("减少半年日期----"+ Utils.DateToString(cal.getTime()));
cal.add(Calendar.MONTH,6);//日期加6个月
System.out.println("增加半年的时间戳"+cal.getTime().getTime());
System.out.println("增加半年日期----"+ Utils.DateToString(cal.getTime()));
}
JS时间转换工具类
/**特定格式获取当前日期
* */
function dateFormat(fmt, date) {
var ret;
var opt = {
"Y+": date.getFullYear().toString(), // 年
"m+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"H+": date.getHours().toString(), // 时
"M+": date.getMinutes().toString(), // 分
"S+": date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
for (var k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
}
;
}
;
return fmt;
}
/**获取上一个月数据
* */
function getPreMonth(date) {
var arr = date.split('-');
var year = arr[0]; //获取当前日期的年份
var month = arr[1]; //获取当前日期的月份
var day = arr[2]; //获取当前日期的日
var days = new Date(year, month, 0);
days = days.getDate(); //获取当前日期中月的天数
var year2 = year;
var month2 = parseInt(month) - 1;
if (month2 == 0) {
year2 = parseInt(year2) - 1;
month2 = 12;
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
// var t2 = year2 + '-' + month2 + '-' + day2;
var t2 = year2 + '-' + month2;
return t2;
}
应用:获取上一个月的年份和时间
var date = new Date();
$("#startMon").val(getPreMonth(dateFormat("YYYY-mm", date)));
$("#endMon").val(getPreMonth(dateFormat("YYYY-mm", date)));
/**
* 获取下一个月
*
* @date 格式为yyyy-mm-dd的日期,如:2014-01-25
*/
function getNextMonth(date) {
var arr = date.split('-');
var year = arr[0]; //获取当前日期的年份
var month = arr[1]; //获取当前日期的月份
var day = arr[2]; //获取当前日期的日
var days = new Date(year, month, 0);
days = days.getDate(); //获取当前日期中的月的天数
var year2 = year;
var month2 = parseInt(month) + 1;
if (month2 == 13) {
year2 = parseInt(year2) + 1;
month2 = 1;
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
}
如有不解,请加java爱好群大家交流:852665736;群里都是热心好客的小伙伴,大家一同进步。
无偿免费分享源码以及技术和面试文档,更多优秀精致的源码技术栈分享请关注微信公众号:gh_817962068649