一、Date类
- 类 Date 表示特定的瞬间,精确到毫秒。
- 在 JDK 1.1 之前,类 Date 有两个其他的函数。
- 它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。
- 不过,这些函数的 API 不易于实现国际化。
- 从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,
- 使用 DateFormat 类来格式化和解析日期字符串。
- Date 中的相应方法已废弃。
public class Date implements Serializable, Cloneable, Comparable<Date> { //分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 //自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数 public Date(){} }
二、java.text.SimpleDateFormat类
- 软件包 java.text
- 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。
- SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
- 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
- SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。
- 日期和时间格式由日期和时间模式 字符串指定。
- 在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素
- 定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):
- 模式字母通常是重复的,其数量确定其精确表示
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 |
/** *DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。 *日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。 */ public abstract class DateFormat extends Format { //将一个 Date 格式化为日期/时间字符串 public final String format(Date date){} //从给定字符串的开始解析文本,以生成一个日期。该方法不使用给定字符串的整个文本。 //例如,时间文本 "07/10/96 4:5 PM, PDT" 会解析成等同于 Date(837039928046) 的 Date。 public Date parse(String source) throws ParseException{} }
public class SimpleDateFormatextends DateFormat { //用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat public SimpleDateFormat(){} //用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat public SimpleDateFormat(String pattern){} //将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos){} }
示例:
import java.text.SimpleDateFormat; import java.util.Date; public class OtherClassTest { public static void main(String[] args) { Date d = new Date(); System.out.println(d); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); String time = sdf.format(d); System.out.println(time); } }
三、Calendar 类
- Calendar 类是一个抽象类,不能实例化,可以创建它的子类对象new GregorianCalendar(),也可以通过getInstance获取对象
- 它为特定瞬间 与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,
- 并为操作日历字段(例如获得下星期的日期)提供了一些方法。
- 瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> { //常用字段 public static final int DAY_OF_MONTH; public static final int DAY_OF_YEAR; public static final int DAY_OF_WEEK; public static final int DAY_OF_WEEK_IN_MONTH;//当前月中的第几个星期 public static final int HOUR;//HOUR 用于 12 小时制时钟 (0 - 11) public static final int HOUR_OF_DAY;//HOUR_OF_DAY 用于 24 小时制时钟 public static final int MILLISECOND;//指示一秒中的毫秒 public static final int MINUTE;//指示一小时中的分钟 public static final int SECOND;//指示一分钟中的秒 public static final int MONTH; public static final int WEEK_OF_MONTH; public static final int WEEK_OF_YEAR; public static final int YEAR; //常用方法 //根据日历的规则,为给定的日历字段添加或减去指定的时间量 public abstract void add(int field, int amount); //返回给定日历字段的值 public int get(int field){} //使用默认时区和语言环境获得一个日历。返回的 Calendar 基于当前时间,使用了默认时区和默认语言环境。 public static Calendar getInstance(){} //返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象 public final Date getTime(){} //将给定的日历字段设置为给定值。 public void set(int field, int value){} //设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值 public final void set(int year, int month, int date){} //设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值 public final void set(int year, int month, int date, int hourOfDay, int minute){} //设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值 public final void set(int year, int month, int date, int hourOfDay, int minute, int second){} //使用给定的 Date 设置此 Calendar 的时间。 public final void setTime(Date date){} }
示例:
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 需求:获取任意年的二月份天数 */ public class CalendarTest { public static void main(String[] args) { Calendar c = Calendar.getInstance(); c.set(2004,2,1); c.add(Calendar.DAY_OF_MONTH, -1); int num = c.get(Calendar.DAY_OF_MONTH); System.out.println(num); Date d = c.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String time = sdf.format(d); System.out.println(time); } }
四、java.lang.Math类
/** *Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数 */ public final class Math { //字段******************************************** //比任何其他值都更接近 e(即自然对数的底数)的 double 值 public static final double E; //比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值 public static final double PI; //常用方法******************************************** //返回 double,float,int,long 值的绝对值 public static double abs(double a){} //返回 double 值的立方根 public static double cbrt(double a){} //返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数 //ceil(5.4) = 6.0 public static double ceil(double a){} //返回角的三角余弦。 public static double cos(double a){} //返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数 //floor(2.3) = 2.0 public static double floor(double a){} //返回两个 double,float,int,long 值中较大的一个 public static double max(double a, double b){} //返回两个 double,float,int,long 值中较小的一个 public static float min(float a, float b){} //返回第一个参数的第二个参数次幂的值。 public static double pow(double a, double b){} //返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数 public static double random(){} //返回最接近参数并等于某一整数的 double 值 //rint(5.4)=5.0 rint(5.5)=6.0 public static double rint(double a){} //.......... }
五、java.util.Random类
/** *此类的实例用于生成伪随机数流。 */ public class Random implements Serializable { //创建一个新的随机数生成器。 public Random(){} //生成下一个伪随机数 protected int next(int bits){} //返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值 public float nextFloat(){} public double nextDouble(){} public double nextBoolean(){} public double nextLong(){} //生成随机字节并将其置于用户提供的 byte 数组中。所生成的随机字节数等于该 byte 数组的长度 public void nextBytes(byte[] bytes){} //返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值 public int nextInt(){} //返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值 public int nextInt(int n){} //返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。 public double nextGaussian(){} }
六、示例
import java.util.Random; public class MathTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub method2(); method1(); } public static void method1() { Random ran = new Random(); for(int y=0;y<10;y++) { int x = ran.nextInt(10); System.out.println(x+1); } } public static void method2() { for(int y=0;y<10;y++) { int x = (int) (Math.random()*10%10+1); System.out.println(x); } } }
相关推荐
在这个"JAVA System、Math、Date、DateFormat、Calendar"的主题中,我们将深入探讨Java标准库中的几个核心类,它们在各种程序设计场景中扮演着至关重要的角色。 首先,`System`类是Java中最基础的类之一,位于`java...
5. **`java.util.Date`** 和 **`java.time.*`**:`Date`是旧版的日期类,而`java.time`包是Java 8引入的新日期时间API,更强大且易用。 6. **`java.util.Random`**:生成随机数,可用于各种随机行为的模拟。 7. **...
`java.util.Calendar`是日期和时间的日历类,提供了比`Date`更灵活的操作。它可以设置和获取各种日期字段,如年、月、日、小时等。 ### 4. 基本类型包装类 Java为每个基本数据类型提供了对应的包装类,如`Integer`...
`java.util.Date` 类用于表示特定时刻的时间戳,即自1970年1月1日00:00:00 GMT以来所经过的毫秒数。虽然这个类的一些构造方法和方法被标记为已废弃,但它仍然广泛应用于许多项目中,特别是在数据库操作中作为日期值...
3. **`java.lang.Math`**: 提供了许多数学运算,如平方根(`sqrt()`)、最大值(`max()`)、最小值(`min()`)以及随机数生成(`random()`)。`Math.pow(a, b)`用于计算a的b次方。 4. **`java.text....
日期操作类通常包括java.util.Date,java.util.Calendar,以及java.text.SimpleDateFormat。Date表示特定瞬间,Calendar是日历抽象类,SimpleDateFormat用于日期/时间的格式化。例如,创建日期对象,设置日期,然后...
此外,`java.util`还提供了日期和时间处理的类,如Date、Calendar和SimpleDateFormat。Date类用于表示特定的瞬间,可以获取和设置日期和时间。Calendar是抽象类,提供了一种获取和设置日期、时间和时区的方法,它是...
BufferedReader BufferedWriter FileReader FileWirter String Integer java.util.Date System Class(反射的核心类) 实现集合接口类HashMap ArrayList LinkedList HashSet java.lang.String StringBuilder 日期时间...
- `Date` 和 `Calendar` 类:用于处理日期和时间。 - `Collections` 工具类:提供了一系列对集合进行操作的方法。 - `Random` 类:用于生成随机数。 #### 3. `java.io` 包 - **概述**:`java.io`包主要涉及输入...
3. **数学运算(MathDemo.class)**:`java.lang.Math`类包含了许多用于数学计算的方法,如`sqrt()`(平方根)、`pow()`(幂运算)、`random()`(生成随机数)等。对于更复杂的数学操作,可以使用`java.math`包中的`...
- **java.util.Calendar** #### 四、文件IO操作 **4.1 java.io.File文件类** - **构造方法**: - `File(String pathname)` - `File(File parent, String child)` - **常用方法**: - `createNewFile()`:创建...
- `java.util`: 这个包中包含了大量工具类,如`ArrayList`, `HashMap`, `LinkedList`等集合框架类,以及`Date`, `Calendar`时间处理类,`Random`随机数生成器等。 - `java.text`: 提供了`SimpleDateFormat`进行...
- java.util: 提供了各种实用工具类,包括集合框架(如List、Set、Map)、日期和时间处理(Date、Calendar)、随机数生成器(Random)等。 - java.io: 处理输入和输出操作,包括文件读写、流操作等,如File、...
26、正确答案:(Random、java.util.random) 27、正确答案:(圆周率、自然对数) 28、正确答案:(SimpleDateFormat) 29、正确答案:(sqrt(double a)) 30、正确答案:(getRuntime()) 31、正确答案:(Date、Calendar、...
- **`java.util.Random`类**:提供多种生成随机数的方法,包括整数、浮点数等。 - 示例代码: ```java Random random = new Random(); int randomInt = random.nextInt(100); // 生成0到99之间的随机整数 ``` -...
Java提供了多种处理日期和时间的类,其中`java.util.Date`和`Calendar`最为常用。`Date`类用于表示特定时刻,而`Calendar`则提供更丰富的日期和时间操作,包括日期的增减、时区的处理等。为了使日期格式符合特定区域...
这些基础类主要分布在 java.lang、java.util、java.io、java.sql、java.text 等包中。 1. 包装类 包装类是 Java 语言中最基本的类之一,它将基本数据类型封装为对象。每个基本数据类型都有对应的包装类,例如 ...