`

18、java.util.Date-SimpleDateFormat-Calendar-Math-Random

阅读更多

一、Date类

 

  1. 类 Date 表示特定的瞬间,精确到毫秒。 
  2. 在 JDK 1.1 之前,类 Date 有两个其他的函数。
  3. 它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。
  4. 不过,这些函数的 API 不易于实现国际化。
  5. 从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,
  6. 使用 DateFormat 类来格式化和解析日期字符串。
  7. Date 中的相应方法已废弃。 
public class Date implements Serializable, Cloneable, Comparable<Date>
{
	//分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
	//自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数
	public Date(){}
}

 

二、java.text.SimpleDateFormat类

 

  1. 软件包 java.text 
  2. 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。
  3. SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
  4. 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。 
  5. SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。
  6. 日期和时间格式由日期和时间模式 字符串指定。
  7. 在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素
  8. 定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留): 
  9. 模式字母通常是重复的,其数量确定其精确表示
字母 日期或时间元素 表示 示例
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 类

 

  1. Calendar 类是一个抽象类,不能实例化,可以创建它的子类对象new GregorianCalendar(),也可以通过getInstance获取对象
  2. 它为特定瞬间 与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,
  3. 并为操作日历字段(例如获得下星期的日期)提供了一些方法。
  4. 瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 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、Math、Date、DateFormat、Calendar"的主题中,我们将深入探讨Java标准库中的几个核心类,它们在各种程序设计场景中扮演着至关重要的角色。 首先,`System`类是Java中最基础的类之一,位于`java...

    java工具类

    5. **`java.util.Date`** 和 **`java.time.*`**:`Date`是旧版的日期类,而`java.time`包是Java 8引入的新日期时间API,更强大且易用。 6. **`java.util.Random`**:生成随机数,可用于各种随机行为的模拟。 7. **...

    第6天(常用API【Date、DateFormat、Calendar、Math、System、包装类、正则表达式】)v20170

    `java.util.Calendar`是日期和时间的日历类,提供了比`Date`更灵活的操作。它可以设置和获取各种日期字段,如年、月、日、小时等。 ### 4. 基本类型包装类 Java为每个基本数据类型提供了对应的包装类,如`Integer`...

    java常用工具类的使用

    `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期末复习-常用类库

    日期操作类通常包括java.util.Date,java.util.Calendar,以及java.text.SimpleDateFormat。Date表示特定瞬间,Calendar是日历抽象类,SimpleDateFormat用于日期/时间的格式化。例如,创建日期对象,设置日期,然后...

    Java基础精品课14-常用类1.zip

    此外,`java.util`还提供了日期和时间处理的类,如Date、Calendar和SimpleDateFormat。Date类用于表示特定的瞬间,可以获取和设置日期和时间。Calendar是抽象类,提供了一种获取和设置日期、时间和时区的方法,它是...

    java葵花宝典经典面试ppt

    BufferedReader BufferedWriter FileReader FileWirter String Integer java.util.Date System Class(反射的核心类) 实现集合接口类HashMap ArrayList LinkedList HashSet java.lang.String StringBuilder 日期时间...

    javaAPI 各个包的内容

    - `Date` 和 `Calendar` 类:用于处理日期和时间。 - `Collections` 工具类:提供了一系列对集合进行操作的方法。 - `Random` 类:用于生成随机数。 #### 3. `java.io` 包 - **概述**:`java.io`包主要涉及输入...

    java提高的必需学好java必需品,这是我从老师那总结出来的java题,各种的,涵盖全面,考试必备

    3. **数学运算(MathDemo.class)**:`java.lang.Math`类包含了许多用于数学计算的方法,如`sqrt()`(平方根)、`pow()`(幂运算)、`random()`(生成随机数)等。对于更复杂的数学操作,可以使用`java.math`包中的`...

    个人笔记--Java_API

    - **java.util.Calendar** #### 四、文件IO操作 **4.1 java.io.File文件类** - **构造方法**: - `File(String pathname)` - `File(File parent, String child)` - **常用方法**: - `createNewFile()`:创建...

    java常用开发工具类大全

    - `java.util`: 这个包中包含了大量工具类,如`ArrayList`, `HashMap`, `LinkedList`等集合框架类,以及`Date`, `Calendar`时间处理类,`Random`随机数生成器等。 - `java.text`: 提供了`SimpleDateFormat`进行...

    java编程-API教程

    - java.util: 提供了各种实用工具类,包括集合框架(如List、Set、Map)、日期和时间处理(Date、Calendar)、随机数生成器(Random)等。 - java.io: 处理输入和输出操作,包括文件读写、流操作等,如File、...

    2021计算机二级测试Java试题.docx

    26、正确答案:(Random、java.util.random) 27、正确答案:(圆周率、自然对数) 28、正确答案:(SimpleDateFormat) 29、正确答案:(sqrt(double a)) 30、正确答案:(getRuntime()) 31、正确答案:(Date、Calendar、...

    day015_常用类-异常-正则表达式.docx

    - **`java.util.Random`类**:提供多种生成随机数的方法,包括整数、浮点数等。 - 示例代码: ```java Random random = new Random(); int randomInt = random.nextInt(100); // 生成0到99之间的随机整数 ``` -...

    Java_SE应用部分-34

    Java提供了多种处理日期和时间的类,其中`java.util.Date`和`Calendar`最为常用。`Date`类用于表示特定时刻,而`Calendar`则提供更丰富的日期和时间操作,包括日期的增减、时区的处理等。为了使日期格式符合特定区域...

    Java常用的基础类

    这些基础类主要分布在 java.lang、java.util、java.io、java.sql、java.text 等包中。 1. 包装类 包装类是 Java 语言中最基本的类之一,它将基本数据类型封装为对象。每个基本数据类型都有对应的包装类,例如 ...

Global site tag (gtag.js) - Google Analytics