一、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
          指示年的 getset 的字段数字。

MONTH
          指示月份的 getset 的字段数字。

DAY_OF_MONTH
          getset 的字段数字,指示一个月中的某天。

HOUR_OF_DAY
          getset 的字段数字,指示一天中的小时。

MINUTE
          getset 的字段数字,指示一小时中的分钟。

SECOND
          getset 的字段数字,指示一分钟中的秒。

(4)set方法。

该方法也有多个重载形式。

 void set(int field, int value)
          将给定的日历字段设置为给定值。
 void set(int year,
int month, int date)

          设置日历字段
YEARMONTHDAY_OF_MONTH 的值。
 void set(int year,
int month, int date, int hourOfDay, int minute)

          设置日历字段
YEARMONTHDAY_OF_MONTHHOUR_OF_DAY
MINUTE 的值。
 void set(int year,
int month, int date, int hourOfDay, int minute, int second)


          设置字段
YEARMONTHDAY_OF_MONTHHOURMINUTE
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常用类演示】的更多相关文章

  1. Java基础 —— Java常用类

    Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...

  2. Java常用类之要点总结

    Java常用类之要点总结

  3. Java常用类:包装类,String,日期类,Math,File,枚举类

    Java常用类:包装类,String,日期类,Math,File,枚举类

  4. Java常用类学习笔记总结

    Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...

  5. Java 常用类总结(SE基础)

    本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...

  6. Java常用类的使用

    Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...

  7. 深入理解Java常用类-----StringBuilder

    上篇文章我们介绍过String这个常用类,知道了该类的内部其实是用的一个char数组表示一个字符串对象的,只是该字符数组被final修饰,一旦初始化就不能修改,但是对于经常做字符串修改操作的情况下,S ...

  8. Java常用类之String类、Stringbuffer和Random类练习

    定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...

  9. java常用类-上

    一,常用类之一包装类 java开发中习惯把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lan ...

随机推荐

  1. 如何预览github中的html页面

    在github里面的文件路径是https://github.com/gavin125/Sass-test/blob/master/html/index.html 那么我们需要在这个地址前面加上http ...

  2. 9 DelayQueueEntry 延时队列节点类——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...

  3. EXTJS Ajax请求中文乱码

    设置actionMethods, read为post proxy: { type: 'ajax', url: '../Dictionary/query', actionMethods: { read: ...

  4. Git的维护(git gc和git fsck)

    原文: http://gitbook.liuhui998.com/4_10.html 一.保证git良好的性能 在大的仓库中, git靠压缩历史信息来节约磁盘和内存空间. 压缩操作并不是自动进行的, ...

  5. JavaScript——同源策略

    概念:同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准.它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载.   这里的同源指的是: ...

  6. JavaScript——this关键字

    请看下面的代码,最后alert出来的是什么呢? 1 var name = "Bob"; 2 var nameObj ={ 3 name : "Tom", 4 s ...

  7. AngularJS之Provider, Value, Constant, Service, Factory, Decorator的区别与详解

    本文转载自http://camnpr.com/javascript/1693.html 首先,provider, value, constant, service, factory他们都是provid ...

  8. 将数据导入带模板EXCEL

    在EXCEL模板里设置好样式和格式 点击事件 private void btnReport_Click(object sender, EventArgs e)        {            ...

  9. centos6.5kvm虚拟化安装部署

    一.走进云计算 云计算:云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供, ...

  10. VC++ 判断当前系统为32位还是64位

    尝试了在VC++环境下判断系统为32位还是64位的方法,亲测有效!提供的函数如下 BOOL IsWow64() { typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) ...