【JAVA常用类演示】
一、java.lang.System类。
public final class Systemextends Object |
该类包含一些有用的类字段和方法。它不能被实例化。
在 System
类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。
1. currentTimeMillis方法。
该方法返回当前系统时间的毫秒值。
long currentTime=System.currentTimeMillis();
System.out.println(currentTime);//获取当前时间到1970.1.1 午夜的毫秒值。
2.重点方法:getProperties、getProperty与setProperty方法。
public static Properties getProperties() |
public static String getProperty(String key) |
public static String getProperty(String key,String def) |
public static void setProperties(Properties props) |
前三个方法是用于获取系统属性的方法,第一个方法是获取全部属性的方法,第二个方法和第三个方法是根据key获取某一种系统属性的方法。
第四个方法是向系统属性集中添加指定的系统属性(键值对)。
Properties是HashTable的子类,所以它存放的也是键值对。但是它不带有泛型,而且有自己的遍历方式:
通过stringPropertyName()方法获得键的Set集合。
public Set<String> stringPropertyNames() |
通过getProperty方法根据键获得值。
String |
getProperty(String key) 用指定的键在此属性列表中搜索属性。 |
String |
getProperty(String key, String defaultValue) 用指定的键在属性列表中搜索属性。 |
示例代码:
package p01.OftenUseClass.p01.SystemDemo; import java.util.Properties;
import java.util.Set; public class SystemDemo { public static void main(String[] args) {
//currentMillisDemo();
getPropertiesDemo();
newLine();
getSinglePropertyDemo();
newLine();
setPropertyDemo();
} private static void newLine() {
for(int i=1;i<=100;i++)
System.out.print("-");
System.out.println();
} private static void setPropertyDemo() {
System.setProperty("mykey", "myvalue");
getPropertiesDemo();
} /*
* 获取当前系统的一个属性
*/
private static void getSinglePropertyDemo() {
String file_seperator=System.getProperty("file.separator");
System.out.println("文件分隔符是:"+file_seperator);
} /*
* 获取当前系统属性。
*/
private static void getPropertiesDemo() {
Properties pro=System.getProperties();
Set<String>set=pro.stringPropertyNames();
for(String key:set)
{
String value=pro.getProperty(key);
System.out.println(key+": "+value);
}
} /*
* 获取当前时间。
*/
private static void currentMillisDemo() {
long currentTime=System.currentTimeMillis();
System.out.println(currentTime);//获取当前时间到1970.1.1 午夜的毫秒值。
} }
运行结果:
java.runtime.name: Java(TM) SE Runtime Environment
sun.boot.library.path: C:\Program Files\Java\jre8\bin
java.vm.version: 25.0-b70
java.vm.vendor: Oracle Corporation
java.vendor.url: http://java.oracle.com/
path.separator: ;
java.vm.name: Java HotSpot(TM) Client VM
file.encoding.pkg: sun.io
user.script:
user.country: CN
sun.java.launcher: SUN_STANDARD
sun.os.patch.level: Service Pack 1
java.vm.specification.name: Java Virtual Machine Specification
user.dir: E:\Eclipse SE 工作空间\IOStream
java.runtime.version: 1.8.0-b132
java.awt.graphicsenv: sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs: C:\Program Files\Java\jre8\lib\endorsed
os.arch: x86
java.io.tmpdir: C:\Users\KUANGD~1\AppData\Local\Temp\
line.separator: java.vm.specification.vendor: Oracle Corporation
user.variant:
os.name: Windows 7
sun.jnu.encoding: GBK
java.library.path: C:\Program Files\Java\jre8\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files/Java/jre8/bin/client;C:/Program Files/Java/jre8/bin;C:/Program Files/Java/jre8/lib/i386;D:\MyPHPEnvironment\Apache\bin;D:\Android开发\adt-bundle-windows-x86-20140321\adt-bundle-windows-x86-20140321\sdk\platform-tools;D:\Android开发\adt-bundle-windows-x86-20140321\adt-bundle-windows-x86-20140321\sdk\tools;c:\Windows\System32;C:\Program Files\Java\jdk1.8.0\bin;C:\Program Files\Java\jdk1.8.0\jre\bin;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\MySQL\MySQL Utilities 1.3.5\;D:\masm;D:\应用程序扩展\VC++ 6.0\Tools\WinNT;D:\应用程序扩展\VC++ 6.0\MSDev98\Bin;D:\应用程序扩展\VC++ 6.0\Tools;D:\应用程序扩展\VC98\bin;C:\Program Files\SSH Communications Security\SSH Secure Shell;D:\Program Files\Eclipse SE\eclipse;;.
java.specification.name: Java Platform API Specification
java.class.version: 52.0
sun.management.compiler: HotSpot Client Compiler
os.version: 6.1
user.home: C:\Users\kuangdaoyizhimei
user.timezone:
java.awt.printerjob: sun.awt.windows.WPrinterJob
file.encoding: GBK
java.specification.version: 1.8
user.name: kuangdaoyizhimei
java.class.path: E:\Eclipse SE 工作空间\IOStream\bin
java.vm.specification.version: 1.8
sun.arch.data.model: 32
java.home: C:\Program Files\Java\jre8
sun.java.command: p01.OftenUseClass.p01.SystemDemo.SystemDemo
java.specification.vendor: Oracle Corporation
user.language: zh
awt.toolkit: sun.awt.windows.WToolkit
java.vm.info: mixed mode, sharing
java.version: 1.8.0
java.ext.dirs: C:\Program Files\Java\jre8\lib\ext;C:\windows\Sun\Java\lib\ext
sun.boot.class.path: C:\Program Files\Java\jre8\lib\resources.jar;C:\Program Files\Java\jre8\lib\rt.jar;C:\Program Files\Java\jre8\lib\sunrsasign.jar;C:\Program Files\Java\jre8\lib\jsse.jar;C:\Program Files\Java\jre8\lib\jce.jar;C:\Program Files\Java\jre8\lib\charsets.jar;C:\Program Files\Java\jre8\lib\jfr.jar;C:\Program Files\Java\jre8\classes
java.vendor: Oracle Corporation
file.separator: \
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
sun.cpu.endian: little
sun.io.unicode.encoding: UnicodeLittle
sun.desktop: windows
sun.cpu.isalist: pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
----------------------------------------------------------------------------------------------------
文件分隔符是:\
----------------------------------------------------------------------------------------------------
java.runtime.name: Java(TM) SE Runtime Environment
sun.boot.library.path: C:\Program Files\Java\jre8\bin
java.vm.version: 25.0-b70
java.vm.vendor: Oracle Corporation
java.vendor.url: http://java.oracle.com/
path.separator: ;
java.vm.name: Java HotSpot(TM) Client VM
file.encoding.pkg: sun.io
user.script:
user.country: CN
sun.java.launcher: SUN_STANDARD
sun.os.patch.level: Service Pack 1
java.vm.specification.name: Java Virtual Machine Specification
user.dir: E:\Eclipse SE 工作空间\IOStream
mykey: myvalue************************************************************注意,这行是自定义添加的键值对
java.runtime.version: 1.8.0-b132
java.awt.graphicsenv: sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs: C:\Program Files\Java\jre8\lib\endorsed
os.arch: x86
java.io.tmpdir: C:\Users\KUANGD~1\AppData\Local\Temp\
line.separator: java.vm.specification.vendor: Oracle Corporation
user.variant:
os.name: Windows 7
sun.jnu.encoding: GBK
java.library.path: C:\Program Files\Java\jre8\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files/Java/jre8/bin/client;C:/Program Files/Java/jre8/bin;C:/Program Files/Java/jre8/lib/i386;D:\MyPHPEnvironment\Apache\bin;D:\Android开发\adt-bundle-windows-x86-20140321\adt-bundle-windows-x86-20140321\sdk\platform-tools;D:\Android开发\adt-bundle-windows-x86-20140321\adt-bundle-windows-x86-20140321\sdk\tools;c:\Windows\System32;C:\Program Files\Java\jdk1.8.0\bin;C:\Program Files\Java\jdk1.8.0\jre\bin;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\MySQL\MySQL Utilities 1.3.5\;D:\masm;D:\应用程序扩展\VC++ 6.0\Tools\WinNT;D:\应用程序扩展\VC++ 6.0\MSDev98\Bin;D:\应用程序扩展\VC++ 6.0\Tools;D:\应用程序扩展\VC98\bin;C:\Program Files\SSH Communications Security\SSH Secure Shell;D:\Program Files\Eclipse SE\eclipse;;.
java.specification.name: Java Platform API Specification
java.class.version: 52.0
sun.management.compiler: HotSpot Client Compiler
os.version: 6.1
user.home: C:\Users\kuangdaoyizhimei
user.timezone:
java.awt.printerjob: sun.awt.windows.WPrinterJob
file.encoding: GBK
java.specification.version: 1.8
user.name: kuangdaoyizhimei
java.class.path: E:\Eclipse SE 工作空间\IOStream\bin
java.vm.specification.version: 1.8
sun.arch.data.model: 32
java.home: C:\Program Files\Java\jre8
sun.java.command: p01.OftenUseClass.p01.SystemDemo.SystemDemo
java.specification.vendor: Oracle Corporation
user.language: zh
awt.toolkit: sun.awt.windows.WToolkit
java.vm.info: mixed mode, sharing
java.version: 1.8.0
java.ext.dirs: C:\Program Files\Java\jre8\lib\ext;C:\windows\Sun\Java\lib\ext
sun.boot.class.path: C:\Program Files\Java\jre8\lib\resources.jar;C:\Program Files\Java\jre8\lib\rt.jar;C:\Program Files\Java\jre8\lib\sunrsasign.jar;C:\Program Files\Java\jre8\lib\jsse.jar;C:\Program Files\Java\jre8\lib\jce.jar;C:\Program Files\Java\jre8\lib\charsets.jar;C:\Program Files\Java\jre8\lib\jfr.jar;C:\Program Files\Java\jre8\classes
java.vendor: Oracle Corporation
file.separator: \
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
sun.cpu.endian: little
sun.io.unicode.encoding: UnicodeLittle
sun.desktop: windows
sun.cpu.isalist: pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
各种系统属性中,有几个个重要的属性:路径分隔符、行分隔符属性等。在Windows下,行分隔符是\r\n,而在linux下,行分隔符是\n,这就导致同一个Java程序在windows下和在linux下运行结果不同。解决办法就是使用System.getProperty("line.separator")得到当前系统下的行分隔符(举例),并应用在程序中。
二、java.lang.Runtime类。
public class Runtimeextends Object |
API1.6对Runtime类的解释:每个 Java 应用程序都有一个 Runtime
类实例,使应用程序能够与其运行的环境相连接。应用程序不能创建自己的 Runtime 类实例。
个人认为Runtime类只是桥梁,它将当前运行的java程序和运行的平台联系起来,使得java程序能够使用该平台上的一些资源,如某些应用程序等。
注意,该类没有构造方法摘要,但是却又非静态方法,说明该类使用了单例设计模式。
1.getRuntime方法。
public static Runtime getRuntime() |
该方法返回一个Runtime实例对象。
2.exec方法。
该方法有多个重载方法,现在只说一种。
public Process exec(String[] cmdarray)throws IOException |
该方法返回值是Process类型的,Process类是“进程类”,该进程是在当前java程序运行平台上的其它程序运行的进程。比如notepad.exe等。
Process类中有多个方法可以操作该进程,比如使用destroy()方法可以杀死当前进程。
示例程序:
package p01.OftenUseClass.p02.RuntimeDemo; import java.io.IOException; public class RuntimeDemo
{ public static void main(String[] args) {
Demo();
}
private static void Demo() {
Runtime r=Runtime.getRuntime();
try
{
Process p=r.exec("notepad.exe c:\\aim.java");
try
{
Thread.sleep(5000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
p.destroy();
} catch (IOException e1)
{
e1.printStackTrace();
} } }
三、java.lang.Math类。
public final class Mathextends Object |
该类是一个工具类,封装了很多数学方法。如正弦、预先、正切、余切等。
几个常用的方法的代码示例:
package p01.OftenUseClass.p03.MathDemo; import java.util.Random; public class MathDemo { public static void main(String[] args) {
//Demo();
// randomDemo();
// RandomClassDemo();
RandomClassDemo1();
} private static void RandomClassDemo1() {
/*
* 使用NextInt方法更容易实现得到15-36的随机数
*/
Random r=new Random();
for(int i=1;i<=100;i++)
{
System.out.println(r.nextInt(36-15)+15);
}
} private static void RandomClassDemo() {
/*
* 使用Random的nextDouble方法也可以获取[0,1)的随机数
*/
Random r=new Random();
for(int i=1;i<=100;i++)
{
int aim=(int) Math.floor(r.nextDouble()*(36-15+1)+15);//[0,22) [15,37)
System.out.println(aim);
}
} private static void randomDemo() {
//求15-36的随机数。
for(int i=1;i<=100;i++)
{
int aim=(int) Math.floor(Math.random()*(36-15+1)+15);//[0,22) [15,37)
System.out.println(aim);
}
} private static void Demo() {
/*
* 演示一些常用的方法。
*/
System.out.println(Math.ceil(3.1415926));
System.out.println(Math.floor(3.1415926));
System.out.println(Math.round(3.1415926)); for(int i=1;i<=10;i++)
{
System.out.println(Math.random());
} } }
四、日期类(java.util.Date、java.util.Calendar、java.text.DateFormat、java.text.SimpleDateFormat)
1.java.util.Date类。
public class Dateextends Objectimplements Serializable, Cloneable, Comparable<Date> |
该类有六个构造方法,但是有四个已经过时,剩下的两个构造方法:
Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 |
Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年1 月 1 日 00:00:00 GMT)以来的指定毫秒数。 |
该类称为日期类,如果直接打印该类的一个对象,将会输出日期中封装的年月日时分秒信息。
日期对象转换为毫秒值使用方法getTime():
long |
getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 |
毫秒值转换为日期对象使用构造方法创建对象或者使用setTime方法。
void |
setTime(long time) 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后time 毫秒的时间点。 |
示例代码:
package p01.OftenUseClass.p04.DateDemo; import java.util.Date; public class Class01ChangeDateAndMillis { public static void main(String[] args)
{
changeMillisToDateDemoFunction01();
changeMillisToDateDemoFunction02();
changeDateToMillisDemo();
} private static void changeMillisToDateDemoFunction01()
{
/*
* 使用构造方法将毫秒值转换成日期对象。
*/
long now=System.currentTimeMillis();
Date date1=new Date(now);
System.out.println(date1);
}
private static void changeMillisToDateDemoFunction02() {
/*
* 使用set方法将毫秒值转换成日期对象
*/
long time=System.currentTimeMillis();
time+=1000*600;
Date date=new Date();
System.out.println(date);
date.setTime(time);
System.out.println(date);
} private static void changeDateToMillisDemo() {
/*
* 使用getTime方法将日期对象转换成毫秒值
*/
Date date=new Date();
long time=date.getTime();
System.out.println(time);
}
}
2.java.text.DateFormat类。
public abstract class DateFormatextends Format |
通过该类的API描述可以看出该类是一个抽象类,但是该类仍然封装了非静态方法,说民该类也使用了单例设计模式。
(1)获取对象实例的方法。
该类获取对象实例的方法有很多种,但是常用的只有几种:
static DateFormat |
getDateInstance() 获取日期格式器,该格式器具有默认语言环境的默认格式化风格。 |
static DateFormat |
getDateTimeInstance() 获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。 |
static DateFormat |
getDateInstance(int style) 获取日期格式器,该格式器具有默认语言环境的给定格式化风格。 |
static DateFormat |
getDateTimeInstance(int dateStyle, int timeStyle) 获取日期/时间格式器,该格式器具有默认语言环境的给定日期和时间格式化风格。 |
关于dataStyle,API给出的解释:
static int |
DEFAULT 用于默认模式的常量。 |
static int |
FULL 用于 FULL 模式的常量。 |
static int |
LONG 用于 LONG 模式的常量。 |
static int |
MEDIUM 用于 MEDIUM 模式的常量。 |
static int |
SHORT 用于 SHORT 模式的常量。 |
一般来说使用LONG模式就已经足够了。
(2)format方法。
format方法有三种重载形式:
String |
format(Date date) 将一个 Date 格式化为日期/时间字符串。 |
abstract StringBuffer |
format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) 将一个 Date 格式化为日期/时间字符串。 |
StringBuffer |
format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition) 重写 Format。 |
用的比较的是第一种方法。
该方法将返回一个日期的字符串表示形式,该字符串已经被格式化。
(3)代码示例。
package p01.OftenUseClass.p04.DateDemo; import java.text.DateFormat;
import java.util.Date; public class Class02ChangeMachineDateToNormalFormatByDateFormat { public static void main(String[] args)
{
/*
* 使用DateFormat中的方法得到想要的日期格式
*/
// defaultFormatDemo();
limitNormalFormatDemo();
} private static void limitNormalFormatDemo() {
//演示四种指定格式的日期格式器。特别注意,这种方式不能指定自定义格式。
Date date=new Date();
DateFormat df_1=DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.DEFAULT);
DateFormat df_2=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
DateFormat df_3=DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);
DateFormat df_4=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
DateFormat df_5=DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); System.out.println("DEFAULT模式:"+df_1.format(date));
System.out.println("FULL模式:"+df_2.format(date));
System.out.println("SHORT模式:"+df_3.format(date));
System.out.println("LONG模式:"+df_4.format(date));
System.out.println("MEDIUM模式:"+df_5.format(date)); } private static void defaultFormatDemo() {
/*
* 这是默认格式的转换。
*/
Date date=new Date();
DateFormat df_Date=DateFormat.getDateInstance();//得到不带时分秒的日期格式器
DateFormat df_DateTime=DateFormat.getDateTimeInstance();//得到时分秒的日期格式器
System.out.println(df_Date.format(date));
System.out.println(df_DateTime.format(date));
} }
(4)注意事项。
DateFormat类只能支持五种模式的日期格式化,而不能提供更多的自定义模式,原因就是DateFormat类是一个抽象类,而且只提供了能够接受固定参数的get[XXX]Instance方法,如果想要自定义格式化的模式,应当使用其子类SimpleDateFormat。
3.java.text.SimpleDateFormat类。
public class SimpleDateFormatextends DateFormat |
该类是DateFormat类的子类,可以实例化对象,所以能够自定义模式。
日期和时间模式:
字母 | 日期或时间元素 | 表示 | 示例 |
---|---|---|---|
G |
Era 标志符 | Text | AD |
y |
年 | Year | 1996 ; 96 |
M |
年中的月份 | Month | July ; Jul ; 07 |
w |
年中的周数 | Number | 27 |
W |
月份中的周数 | Number | 2 |
D |
年中的天数 | Number | 189 |
d |
月份中的天数 | Number | 10 |
F |
月份中的星期 | Number | 2 |
E |
星期中的天数 | Text | Tuesday ; Tue |
a |
Am/pm 标记 | Text | PM |
H |
一天中的小时数(0-23) | Number | 0 |
k |
一天中的小时数(1-24) | Number | 24 |
K |
am/pm 中的小时数(0-11) | Number | 0 |
h |
am/pm 中的小时数(1-12) | Number | 12 |
m |
小时中的分钟数 | Number | 30 |
s |
分钟中的秒数 | Number | 55 |
S |
毫秒数 | Number | 978 |
z |
时区 | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z |
时区 | RFC 822 time zone | -0800 |
用法示例:
日期和时间模式 | 结果 |
---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" |
2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" |
Wed, Jul 4, '01 |
"h:mm a" |
12:08 PM |
"hh 'o''clock' a, zzzz" |
12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" |
0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" |
02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" |
Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" |
010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" |
2001-07-04T12:08:56.235-0700 |
(1)构造方法。
SimpleDateFormat() 用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat 。 |
SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat 。 |
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols) 用给定的模式和日期符号构造 SimpleDateFormat 。 |
SimpleDateFormat(String pattern, Locale locale) 用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat 。 |
四种构造方法中,使用的最多的是第二种方法,这种方法指定了日期和时间模式pattern。
(2)parse方法。
Date |
parse(String text, ParsePosition pos) 解析字符串的文本,生成 Date 。 |
该方法虽然有两个参数,但是经常只写一个参数,那就是日期字符串,如“2014年2月2日 13:14:21”
(3)format方法。
StringBuffer |
format(Date date, StringBuffer toAppendTo, FieldPosition pos) 将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的StringBuffer 。 |
该方法虽然有三个参数,但是经常只写一个参数,即date。
(4)代码示例。
package p01.OftenUseClass.p04.DateDemo; import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat; public class Class03ChangeMachineDateAndNormalFormatBySimpleDateFormat { public static void main(String[] args) {
changeDateStringToDateObjectByParseFunction();
} private static void changeDateStringToDateObjectByParseFunction() {
String pattern_1="yyyy年MM月dd日 HH:mm:ss";
String pattern_2="yyyy##MM##dd HH#m#ss";
String dateString1="2012年12月31日 00:00:01";
SimpleDateFormat sdf=new SimpleDateFormat(pattern_1);
SimpleDateFormat sdf_1=new SimpleDateFormat(pattern_2);
try
{
Date date=sdf.parse(dateString1);
System.out.println(date); String dataString2=sdf_1.format(date);//注意format方法返回一个指定格式的StringBuffer对象。
System.out.println(dataString2);
} catch (ParseException e)
{
e.printStackTrace();
} } }
4.java.util.Calendar类。
日期类不够国际化所以被Calendar替代了一些功能。
public abstract class Calendarextends Objectimplements Serializable, Cloneable, Comparable<Calendar> |
(1)概述。
Calendar类是一个抽象类,但是该类提供了一个方法能够返回一个该类的实例对象。
(2)getInstance()方法。
该方法有多个重载形式:
static Calendar |
getInstance() 使用默认时区和语言环境获得一个日历。 |
static Calendar |
getInstance(Locale aLocale) 使用默认时区和指定语言环境获得一个日历。 |
static Calendar |
getInstance(TimeZone zone) 使用指定时区和默认语言环境获得一个日历。 |
static Calendar |
getInstance(TimeZone zone, Locale aLocale) 使用指定时区和语言环境获得一个日历。 |
(3)get方法。
int |
get(int field) 返回给定日历字段的值。 |
该方法实现了很多Date类中已经过时的方法。
通过这个方法可以获取到Date对象的各个字段。
field是字段的意思,几个重要的字段:
YEAR
指示年的 get
和 set
的字段数字。
MONTH
指示月份的 get
和 set
的字段数字。
DAY_OF_MONTH
get
和 set
的字段数字,指示一个月中的某天。
HOUR_OF_DAY
get
和 set
的字段数字,指示一天中的小时。
MINUTE
get
和 set
的字段数字,指示一小时中的分钟。
SECOND
get
和 set
的字段数字,指示一分钟中的秒。
(4)set方法。
该方法也有多个重载形式。
void |
set(int field, int value) 将给定的日历字段设置为给定值。 |
void |
set(int year, 设置日历字段 YEAR 、MONTH 和 DAY_OF_MONTH 的值。 |
void |
set(int year, 设置日历字段 YEAR 、MONTH 、DAY_OF_MONTH 、HOUR_OF_DAY 和 MINUTE 的值。 |
void |
set(int year, 设置字段 YEAR 、MONTH 、DAY_OF_MONTH 、HOUR 、MINUTE 和 SECOND 的值。 |
该方法能够将当前对象的各个字段值设置为指定值。
(5)add方法。
abstract void |
add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。 |
(6)代码示例。
package p01.OftenUseClass.p04.DateDemo; import java.util.Calendar; public class Class04CalendarDemo { public static void main(String[] args) {
Calendar cal=Calendar.getInstance();
getDateSegmentsDemo(cal);
setDateSegmentsDemo(cal);
addDateSegmentsDemo(cal);
} private static void addDateSegmentsDemo(Calendar cal) {
/*
* 使用add方法修改日期
*/
cal.add(Calendar.YEAR, 1);
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.DAY_OF_MONTH, 1); cal.add(Calendar.HOUR_OF_DAY, 1);
cal.add(Calendar.MINUTE, 1);
cal.add(Calendar.SECOND, -1); getDateSegmentsDemo(cal);
} private static void setDateSegmentsDemo(Calendar cal) {
/*
* 设置当前日期各字段
*/
cal.set(Calendar.YEAR, 2000);
cal.set(Calendar.MONTH, 1);
cal.set(Calendar.DAY_OF_MONTH, 21); cal.set(Calendar.HOUR_OF_DAY, 13);
cal.set(Calendar.MINUTE, 31);
cal.set(Calendar.SECOND, 59); getDateSegmentsDemo(cal);
} public static void getDateSegmentsDemo(Calendar cal) {
/*
* 为了更加标准化,使用Calendar类获取具体的年月日而不使用Date对象了
*/
int year=cal.get(Calendar.YEAR);
int month=cal.get(Calendar.MONTH);
int day=cal.get(Calendar.DAY_OF_MONTH); int hour=cal.get(Calendar.HOUR_OF_DAY);
int mininus=cal.get(Calendar.MINUTE);
int millis=cal.get(Calendar.SECOND); System.out.println(year+"年"+month+"月"+day+"日 "+hour+":"+mininus+":"+millis);
} }
【JAVA常用类演示】的更多相关文章
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java常用类之要点总结
Java常用类之要点总结
- Java常用类:包装类,String,日期类,Math,File,枚举类
Java常用类:包装类,String,日期类,Math,File,枚举类
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- Java 常用类总结(SE基础)
本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...
- Java常用类的使用
Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...
- 深入理解Java常用类-----StringBuilder
上篇文章我们介绍过String这个常用类,知道了该类的内部其实是用的一个char数组表示一个字符串对象的,只是该字符数组被final修饰,一旦初始化就不能修改,但是对于经常做字符串修改操作的情况下,S ...
- Java常用类之String类、Stringbuffer和Random类练习
定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...
- java常用类-上
一,常用类之一包装类 java开发中习惯把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lan ...
随机推荐
- 如何预览github中的html页面
在github里面的文件路径是https://github.com/gavin125/Sass-test/blob/master/html/index.html 那么我们需要在这个地址前面加上http ...
- 9 DelayQueueEntry 延时队列节点类——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...
- EXTJS Ajax请求中文乱码
设置actionMethods, read为post proxy: { type: 'ajax', url: '../Dictionary/query', actionMethods: { read: ...
- Git的维护(git gc和git fsck)
原文: http://gitbook.liuhui998.com/4_10.html 一.保证git良好的性能 在大的仓库中, git靠压缩历史信息来节约磁盘和内存空间. 压缩操作并不是自动进行的, ...
- JavaScript——同源策略
概念:同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准.它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载. 这里的同源指的是: ...
- JavaScript——this关键字
请看下面的代码,最后alert出来的是什么呢? 1 var name = "Bob"; 2 var nameObj ={ 3 name : "Tom", 4 s ...
- AngularJS之Provider, Value, Constant, Service, Factory, Decorator的区别与详解
本文转载自http://camnpr.com/javascript/1693.html 首先,provider, value, constant, service, factory他们都是provid ...
- 将数据导入带模板EXCEL
在EXCEL模板里设置好样式和格式 点击事件 private void btnReport_Click(object sender, EventArgs e) { ...
- centos6.5kvm虚拟化安装部署
一.走进云计算 云计算:云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供, ...
- VC++ 判断当前系统为32位还是64位
尝试了在VC++环境下判断系统为32位还是64位的方法,亲测有效!提供的函数如下 BOOL IsWow64() { typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) ...