Java Notes: 关于时间、日期表达的类
2017-02-19 07:09
246 查看
从Linux开始,计算机系统都习惯以距离1970年1月1日的秒数(Linux用)或者微秒数(Milleseconds,Java用)来表示当前时间。
所以,在Java当中最原始的时间表达方法是:利用long这种数据类型来存储。
获取当前时间:long now = System.currentTimeMillis();
当然,为了更好地打印大的数字,我们可以使用格式设置类:DecimalFormat.
long now = System.currentTimeMillis();
java.text.DecimalFormat df;
df = new java.text.DecimalFormat("#,###");
//注意这里用逗号代表小数点
System.out.println(df.format(now));
有没有人类点的表示方式呢?有,先说一个deprecated 的类(最好别用的意思):
Java 还有一个类叫做:Date().
java.util.Date d = new java.util.Data();
System.out.println(d);
但是最好使用一个新的Calendar 类,但是Calendar类也有坑:月是从0开始算起(1月是0,2月是1...)。天是从1开始算起(周日是1,周一是2,周二是3)。
而且Calendar是一个抽象类,是无法创建对象的。所以必须:Calendar.getInstance() 去创建其子类赋给引用。常用的:Calendar.JANUARY, Calendar.MONDAY都是它的常量。
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
上面的直接用println打印date对象其实是调用了toString() method. 那如果我想指定打印的格式呢?
java.text.SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yy @ HH:mm");
System.out.println(sdf.format(d));
但是这里同样需要注意MM代表代表Month. 小写的mm是分钟。MMM用的是Feb, MM用的是02. 就这点不同。
然后,可以利用语言的代码来让系统自适应输出:
java.util.Locale = new Locale (languageCode);
DataFormat df = DateFormat.getDateTimeInstance(DataFormat.MEDIUM, DataFormat.MEDIUM, locale);
你可以设置到底是short, medium和long。Depend on your requirement.
还可以使用languageCode和countryCode来指定Locale(en, GB).
需要注意的是:和StringBuilder一样,Date和Calendar是可以利用setMethods去修改它的内容的。所以,他们都是mutable的。
所以,在Java当中最原始的时间表达方法是:利用long这种数据类型来存储。
获取当前时间:long now = System.currentTimeMillis();
当然,为了更好地打印大的数字,我们可以使用格式设置类:DecimalFormat.
long now = System.currentTimeMillis();
java.text.DecimalFormat df;
df = new java.text.DecimalFormat("#,###");
//注意这里用逗号代表小数点
System.out.println(df.format(now));
有没有人类点的表示方式呢?有,先说一个deprecated 的类(最好别用的意思):
Java 还有一个类叫做:Date().
java.util.Date d = new java.util.Data();
System.out.println(d);
但是最好使用一个新的Calendar 类,但是Calendar类也有坑:月是从0开始算起(1月是0,2月是1...)。天是从1开始算起(周日是1,周一是2,周二是3)。
而且Calendar是一个抽象类,是无法创建对象的。所以必须:Calendar.getInstance() 去创建其子类赋给引用。常用的:Calendar.JANUARY, Calendar.MONDAY都是它的常量。
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
上面的直接用println打印date对象其实是调用了toString() method. 那如果我想指定打印的格式呢?
java.text.SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yy @ HH:mm");
System.out.println(sdf.format(d));
但是这里同样需要注意MM代表代表Month. 小写的mm是分钟。MMM用的是Feb, MM用的是02. 就这点不同。
然后,可以利用语言的代码来让系统自适应输出:
java.util.Locale = new Locale (languageCode);
DataFormat df = DateFormat.getDateTimeInstance(DataFormat.MEDIUM, DataFormat.MEDIUM, locale);
你可以设置到底是short, medium和long。Depend on your requirement.
还可以使用languageCode和countryCode来指定Locale(en, GB).
需要注意的是:和StringBuilder一样,Date和Calendar是可以利用setMethods去修改它的内容的。所以,他们都是mutable的。
相关文章推荐
- Java Notes: 关于时间、日期表达的类
- Java Notes: 关于时间、日期表达的类
- Java Notes: 关于时间、日期表达的类
- Java Notes: 关于时间、日期表达的类
- Java Notes: 关于时间、日期表达的类
- Java Notes: 关于时间、日期表达的类
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- Java+Jsp:关于日期时间操作函数类全解
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- JAVA中关于时间跟日期的一些常用方法
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数(转摘)
- java中关于时间日期操作的常用函数