日期、数字

java中的日期

  • java.util.Date
  • 例题一
    • 获取当前系统时间
    • String ——转换——>date
    • date——转换——>String

例题一

package Advance.date;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author 衣鱼
 *	java对日期的处理
 *		获取日期:java.util.Date;
 *		日期格式转换:java.text.SimpleDateFormat;
 */
public class DateTest01 {
	public static void main(String[] args ) throws Exception{
		//获取系统时间
		Date now = new Date();		//Date重写了toString()
		System.out.println(now);
		
		//日期格式化
		//日期类型数据 按照指定格式进行转换
		//Date ——转换——>String
		//java.text.SimpleDateFormat SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
		//它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
		/*
		 * yyyy ——年
		 * MM ——月
		 * dd——天
		 * HH——时
		 * mm——分
		 * ss——秒
		 * SSS——毫秒
		 * */
		SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
		//sdf此刻是一个引用
		//调用SimpleDateFormat的方法   StringBuffer 	format();
		//将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。
		String n = sdf.format(now);
		System.out.println(n);
		
		//将一个日期字符串,转换成Date类型!!!
		String s = "2021-07-01 08:00:00 ";   //格式对齐:String字符串和SimpleDateFormat格式要相同
																	//异常:java.text.ParseException
																	//但是SimpleDateFormat在格式相同的情况下没有写毫秒,如果Sting字符串规定了毫秒,在运行是可以的,省略毫秒
		//String s = "2021-07-01 08:00:00 000";
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date time=sdf2.parse(s);		//parse(); 方法将String转为Date   通过SimpleDateFormat桥梁
		System.out.println(time);
		System.out.println(sdf2.format(time));
	}
}

方法执行时间

package Advance.date;

/**
 * @author 衣鱼
 * 获取1970年1月1日 00:00:00 000到当前时间的毫秒数 1秒=1000毫秒
 * 		应用:统计一个方法执行完耗费的时间
 */
public class DateTest02 {
	public static void main(String[] args) {
		long i =System.currentTimeMillis();
		System.out.println(i);		//获取1970年1月1日 00:00:00 000到当前时间的毫秒数
								/* @return  the difference, measured in milliseconds, between
					    	     *          the current time and midnight, January 1, 1970 UTC.
					    	     * @see     java.util.Date
					    	     */	
			/**
			 * 统计一个方法执行完耗费的时间
			 * 		思路:调用目标方法之前记录一个毫秒数
			 * 			  执行完方法之后记录一个毫秒数
			 * */
		long begin =System.currentTimeMillis();
		print();
		long end =System.currentTimeMillis();
		System.out.println("方法耗费时长"+(end-begin)+"毫秒");
	}
	
	
	public static void print() {
		for(int i = 0;i<1000;i++) {
			System.out.println("i="+i);
		}
	}
}

Date构造方法理解

package Advance.date;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest03 {
	public static void main(String[] args) {
		//创建Date对象,在构造方法里面传入参数“1”代表什么?——参数“1”是一毫秒
		//1970-01-01 00:00:00 001
		Date time =new Date(1);
		//更改Date格式
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
		String str =sdf.format(time);
		System.out.println(str);			//输出:1970-01-01 08:00:00 001   北京是东八区
		
		//获取昨天此刻的时间
		Date time2 = new Date(System.currentTimeMillis()-1000*60*60*24);
		String str2 = sdf.format(time2);
		System.out.println("昨日此时"+str2);
		
		
	}
}

数字

数字格式化

  • 与日期Date类型的数据一样,数字也可以按照指定的格式输出,满足用户的需求
  • DecimalFormat:用于格式化十进制数字 java.text.DecimalFormat;
  • Decimal 十进制的
  • #代表任意数字
  • ,代表千分位
  • . 代表小数点
  • 0 代表不足位补0
package Advance.number;

import java.text.DecimalFormat;

/**
 * @author 衣鱼
 *		关于数字的格式化
		DecimalFormat 是 NumberFormat 的一个具体子类,
		用于格式化十进制数字。该类设计有各种功能,
		使其能够解析和格式化任意语言环境中的数,
		包括对西方语言、阿拉伯语和印度语数字的支持。
		它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。 
 *			
 *			#代表任意数字
 *			,代表千分位
 *			.	代表小数点
 *			0  代表不足位补0
 *
 */
public class NumberTest01 {
	public static void main(String[] args) {
		//java.text.DecimalFormat 负责数字格式化
		//DecimalFormat df = new DecimalFormat("数字格式");
		//加入千分位 保留两位小数
		DecimalFormat df =new DecimalFormat("###,###.##");
		String s =df.format(123.258);
		System.out.println(s);
		DecimalFormat df2 =new DecimalFormat("###,###.0000");
		String s1 =df2.format(123.258);
		System.out.println(s1);
	}
}

大数据BigDecimal

package Advance.number;

import java.math.BigDecimal;

/**
 * @author 衣鱼
 *	BigDecimal 属于大数据,精度极高,不属于基本数据类型 属于java对象
 *	这是sun为财务软件提供的一个类
 */
public class BigDecimalTest01 {
	public static void main(String[] args) {
		BigDecimal v1 = new BigDecimal(100);
		BigDecimal v2 = new BigDecimal(100);
		//求和 v1+v2  错误  v1 v2都是引用
		//调用方法
		BigDecimal v3 =v1.add(v2);
		System.out.println(v3);
	}
}

随机数生成

package Advance.number;

import java.util.Random;

public class RandomTest01 {
	public static void main(String[] args) {
		//创建随机数对象
		Random random =new Random();
		//产生Int范围内的数字
		int num = random.nextInt();
		System.out.println(num);
		//产生0-bound 之间的随机数
		for(int i = 0;i<1000;i++) {
			System.out.println(random.nextInt(1024));		//0-1023
		}
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值