09-日期处理
- Date 类的使用;
- Calendar 类的使用;
- SimpleDateFormat 类的使用;
Date
java 里面有个 java.util.Date,直接表示当前时间。
import java.util.Date;
class Main {
public static void main(String [] args){
Date date = new Date();
System.out.println(date);
}
}
out:
Wed Jul 31 09:45:17 CST 2019
Process finished with exit code 0
Date 的构造方法:
- 无参构造:public Date();
- 有参构造:public Date(long date),接受 long 型数据;
- 转换为 long 型:public long getTime()
Date 与 long 的转换。
import java.util.Date;
class Main {
public static void main(String [] args){
long cur = System.currentTimeMillis();
Date date = new Date(cur);
System.out.println(date);
System.out.println(cur);
System.out.println(date.getTime());
}
}
out:
Wed Jul 31 10:15:43 CST 2019
1564539343189
1564539343189
getTime 方法是一个重要的方法!
日期格式化:SimpleDateFormat(核心)
java.text 是一个专门处理格式的国际化的包。
SimpleDateFormat 是里面一个处理日期的,将日期转换为 String 型的形式显示。
主要使用以下方法:
- 构造函数:public SimpleDateFormat(String pattern),需要传入转换格式;
- 将 Date 转换为 String:public final String format(Date date);
- 将 String 转换为 Date:public Date parse(String source) throws ParseException;
关键在于转换格式上:
| 名称 | 格式 |
|---|---|
| 年 | yyyy |
| 月 | MM |
| 日 | dd |
| 时 | HH |
| 分 | mm |
| 秒 | ss |
| 毫秒 | SSS |
范例:将日期格式化显示
import java.text.SimpleDateFormat;
import java.util.Date;
class Main {
public static void main(String [] args){
long cur = System.currentTimeMillis();
Date date = new Date(cur);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String str = sdf.format(date);
System.out.println(str);
}
}
out:
2019-07-31 10:27:30.681
范例:字符串转日期
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class Main {
public static void main(String [] args) throws ParseException {
String str = "2019-07-31 10:27:30.681";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date = sdf.parse(str);
System.out.println(date);
}
}
out:
Wed Jul 31 10:27:30 CST 2019
注意:
如果输入了不存在的字符串,那么我们认为是错误的,
但是程序会自动给我们进位。并不会抛异常。
如果给定的字符串和转换格式不符合,就会抛出异常。
总结:
在数据库的操作中,有几个常用类型:VARCHAR2(String)、CLOB(String)、NUMBER(int、double)、Date(java.util.Date)
- date 与 string 类转换依靠的是 SimpleDateFormat
- string 与基本类型转换依靠的是包装类和 String.valueOf()方法
- long 与 Date 转换依靠的是 Date 类提供的构造以及 getTIme()方法
Calendar 类
Date 类和 Simpledate 类是一起使用的,
Calendar 类主要是进行一些日期计算的。
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar>
这是一个抽象类,依靠子类进行对象的实例化操作。但是这个类提供一个静态方法,getInstance()返回本类对象。
范例:取得当前日期时间
import java.util.Calendar;
class Main {
public static void main(String [] args){
Calendar cal = Calendar.getInstance();
StringBuffer buf = new StringBuffer();
buf.append(cal.get(Calendar.YEAR)).append("-");
buf.append(cal.get(Calendar.MONTH) + 1).append("-"); //月是从0开始
buf.append(cal.get(Calendar.DAY_OF_MONTH)).append(" ");
buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");
buf.append(cal.get(Calendar.MINUTE)).append(":");
buf.append(cal.get(Calendar.SECOND));
System.out.println(buf);
}
}
out:
2019-7-31 10:48:18
如果是日期计算,这个是相当简单的,直接进行操作就行了。