转化为字符串后compareTo
正好我这有一个日期的工具类,你参考一下。我是直接黏贴进来的,看起来感觉有点乱,你复制后放到eclipse里看就整齐了。import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date
import org.junit.Test
/**
* @author Administrator
* 各种日期、时间转换的示例总结:
*/
public class DateFormatUtil {
/**
* 将当前时间转换成指定格式的日期形式的字符串输出
* */
@Test
public void dateToStr(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
String dateString = sdf.format(new Date())
System.out.println(dateString)
}
/**
* 将给定时间格式的字符串,解析成Date输出
* @throws ParseException
* */
@Test
public void strToDate() throws ParseException{
String str = "201012241002"//yyyyMMddhhmm
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmm")
Date date = sdf.parse(str)
System.out.println(date)
}
/**
* 字符串,格式化 为指定字符串
* @throws ParseException
*/
@Test
public void formatstr()throws ParseException{
String str = "20170314155847"//yyyyMMddhhmm
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss")
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
String str2 = sdf2.format(sdf.parse(str))
System.out.println(str2)
}
/**
* *** 作时间:当前时间减去一天,一月,一年
*/
@Test
public void oprateDate(){
Date date = new Date()//获取当前时间
Calendar calendar = Calendar.getInstance()
calendar.setTime(date)
// calendar.add(Calendar.YEAR, -1)//当前时间减去一年,即一年前的时间
// calendar.add(Calendar.MONTH, -1)//当前时间前去一个月,即一个月前的时间
calendar.add(Calendar.DATE, -1)
Date time = calendar.getTime()//获取一年前的时间,或者一个月前的时间
System.out.println(time)
}
}
public static Date getMonthDeviation(int n ) {
Calendar calendar = Calendar.getInstance()//获取当前日期
calendar.add(Calendar.MONTH, n)//n代表和本月偏移 0本月、1后一月,-1前一月
calendar.set(Calendar.DAY_OF_MONTH,1)//设置为1号,当前日期既为本月第一天
calendar.set(Calendar.HOUR_OF_DAY,0)//将小时至0
calendar.set(Calendar.MINUTE,0)//将分钟至0
calendar.set(Calendar.SECOND,0)//将秒至0
calendar.add(Calendar.SECOND, -1)// 如果需要获取最后一天,则月份偏移后,在1号0时0分0秒基础上-1秒
Date day = calendar.getTime()
return day
}
考虑到无论是第一天还是最后一天都是要精确到时分秒,所以要初始化时设置时分秒。
例如本月为:2020-12
获取本月最后一天:DateUtil.getMonthEnd(1) ,下个月的第一天-1秒
获取上个月最一天:DateUtil.getMonthEnd(0) ,本月的第一天-1秒
获取本月第一天: DateUtil.getMonthEnd(0) ,同时去掉偏移calendar.add(Calendar.SECOND, -1)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)