1. String转换为Date格式:直接上代码,非常简单
// String—>Date:
public static void string_date() {
String dateString = "2015-3-19 14:33:33";
try {
//定制日期格式,HH是24小时制,hh是12小时制,月的MM必须大写,分的mm要小写
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateString);
System.out.println("-----转化为date后:"+date);
} catch (ParseException e) {
//出现异常时输出当前字符串
System.out.println(e.getMessage());
}
}
2. 相反日期转化为字符串
// Date—>String:
public static void date_string() {
// 得到当前时间,转化为string
String todayDate = (new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"))
.format(new Date());
System.out.println("-----得到当前日期的字符串:" + todayDate);
}
3. 得到当前时间,得到下个月的今天,得到下个月的1号,等等。这里需要用到一个类Calendar,我们可以通过这个类对已知的时间进行操作(加减,取值),关于这里类的具体方法请查看API,这就不介绍了。
例:得到下个月今天,和下个月的1号
public static void dateOne() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); // 制定日期格式
Calendar c = Calendar.getInstance();
Date date = new Date();
c.setTime(date);
c.add(Calendar.MONTH, 1); // 将当前日期加一个月
//这里可以填负数,代表是减几个月,比如填-1就是上个月
String validityDate = df.format(c.getTime()); // 返回String型的时间
System.out.println("-----下个月的今天是:" + validityDate);
c.set(Calendar.DAY_OF_MONTH, 1);// 返回时间月的第一天
String firstDay = df.format(c.getTime());
System.out.println("-----取得下个月的1号:" + firstDay);
}
4.计算两个时间段所隔的时间间隔,我这里只计算了天,时,分。具体思路是相同的,我们可根据自己的需求来确定
// 时间相减得到天数
public static int daysBetween(String smdate, String bdate)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) / (1000 * 3600 * 24);
return Integer.parseInt(String.valueOf(between_days));
}
// 时间相减得到小时数
public static int hourBetween(String smdate, String bdate)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) % (1000 * 3600 * 24);
long between_hours = between_days / (1000 * 3600);
return Integer.parseInt(String.valueOf(between_hours));
}
// 时间相减得到分钟数
public static int minuteBetween(String smdate, String bdate)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_hours = (time2 - time1) % (1000 * 3600);
long between_minute = between_hours / (1000 * 60);
return Integer.parseInt(String.valueOf(between_minute));
}
上面这三个方法是计算用的,下面来调用:
public static void main(String[] args) {
try {
String lastDate = "2015-2-25 15:55:36";
// 得到当前时间,转化为string
String todayDate = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))
.format(new Date());
int days = daysBetween(lastDate, todayDate);
int hours = hourBetween(lastDate, todayDate);
int minutes = minuteBetween(lastDate, todayDate);
String interval = days + "天" + hours + "时" + minutes + "分";
System.out.println(interval);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这是我最近一段时间来接触到的一些时间的操作,写下来做笔记,同时和大家分享,希望能够喜欢哦!