常用类

package com.atguigu.java;

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

import org.junit.Test;

public class TimeTest {
	
	/*
	 * Calendar:日历类
	 * 
	 */
	@Test
	public void test4(){
		 
		Calendar calendar = Calendar.getInstance();
		System.out.println(calendar.getClass());
		
		//get()
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		System.out.println(day);
		
		//add()
		calendar.add(Calendar.DAY_OF_MONTH, -2);
		day = calendar.get(Calendar.DAY_OF_MONTH);
		System.out.println(day);
		
		//set()
		calendar.set(Calendar.DAY_OF_MONTH, 20);
		day = calendar.get(Calendar.DAY_OF_MONTH);
		System.out.println(day);
		
		//getTime():获取calendar的Date对象
		Date date = calendar.getTime();
		System.out.println(date);
		//
		Date date1 = new Date(234235235252L);
		calendar.setTime(date1);
		System.out.println(date1);
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
		
	}
	
	/*
	 * SimpleDateFormat类的用途:
	 * 1.将指定的字符串类型的日期转换为日期类的对象
	 * 
	 * 2.“三天打渔两天晒网” 1990-1-1开始执行。  xxxx-xx-xx 打渔?晒网?
	 * 
	 * 过程一:计算两个日期的毫秒差
	 * String str = "1990-1-1"---->java.util.Date date1
	 * ------> long start =  date1.getTime();
	 * 
	 * String str = " xxxx-xx-xx"---->java.util.Date date2
	 * ------> long end =  date2.getTime();
	 * 
	 *int days =  (end - start) / (1000 * 3600 * 24 ) + 1
	 * 
	 * 过程二:
	 * 计算出1990-1-1与 xxxx-xx-xx的天数差(包含 xxxx-xx-xx当天):days
	 * int mod = days % 5;
	 * if(mod == 1 || mod == 2 || mod == 3)--->打渔
	 * else if(mod == 4 || mod == 0) --->晒网
	 * 
	 * 
	 */
	@Test
	public void test3() throws ParseException{
		String str = "1955-07-14";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date = sdf.parse(str);
		System.out.println(sdf.format(date));
		java.sql.Date dateSql = new java.sql.Date(date.getTime());
		System.out.println(dateSql);
	}

	/*
	 * SimpleDateFormat类
	 * 
	 * 1.格式化:日期---->字符串
	 * 
	 * 
	 * 2.解析:字符串---->日期
	 */
	@Test
	public void test2() throws Exception{
		SimpleDateFormat sdf = new SimpleDateFormat();
//		System.out.println(sdf);
		Date date = new Date();
		//1.格式化:日期---->字符串
		String dateStr = sdf.format(date);
		System.out.println(dateStr);//17-6-12 下午4:25
//		SimpleDateFormat sdf1 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
//		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy.MMMMM.dd GGG hh:mm aaa");
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		//1.格式化:日期---->字符串
		String dateStr1 = sdf1.format(date);
		System.out.println(dateStr1);//2017-06-12 04:29:36
		
		//2.解析:字符串---->日期
		Date date1 = sdf.parse("17-6-12 下午4:25");
		System.out.println(date1);
		System.out.println(date);
		
		Date date2 = sdf1.parse("2017-06-12 04:29:36");
		System.out.println(date2);
		
		
	}
	
	
	/*
	 * 2.java.util.Date
	 * 		|----java.sql.Date
	 * 
	 * 
	 * 2.1 java.util.Date:
	 *     ①两个构造器
	 *     ②两个常用方法:toString();long getTime()
	 *     
	 * 2.2 java.sql.Date
	 */
	@Test
	public void test1(){
		//构造器1:Date()
		Date date1 = new Date();//获取系统当前时间对应的日期
		System.out.println(date1.toString());//Mon Jun 12 16:05:57 GMT+08:00 2017
		//返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
		System.out.println(date1.getTime());//1497254846855
		
		//构造器2:Date(long millitime):返回指定毫秒数对应的日期
		Date date2 = new Date(1497254841855L);
		System.out.println(date2);//Mon Jun 12 16:07:21 GMT+08:00 2017
		System.out.println(date2.getTime());//1497254841855
		
		System.out.println("******************");
		//跟数据库交互时,对应的java类中的Date即为java.sql下的Date.
		java.sql.Date date3 = new java.sql.Date(1497254841855L);
		System.out.println(date3);//2017-06-12
		System.out.println(date3.getTime());
		
		System.out.println("****************");
		//练习:如何将一个util.Date对象转换为sql.Date。
		Date date4 = new Date(23524234234L);
		//错误的:
//		java.sql.Date date5 = (java.sql.Date)date4;
//		System.out.println(date5);
		//正确的:
		java.sql.Date date6 = new java.sql.Date(date4.getTime());
		System.out.println(date6);
		
	}
	
	//1.System.currentTimeMills():
	//返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。

}
@Test
	public void test1() throws ParseException{
		BigInteger bi = new BigInteger("12433241123");
		BigDecimal bd = new BigDecimal("12435.351");
		BigDecimal bd2 = new BigDecimal("11");
		System.out.println(bi);
		//System.out.println(bd.divide(bd2));
		//原来JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传递第二个参数,
		//定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以上异常。
		BigDecimal divide = bd.divide(bd2);
		System.out.println(divide);
		//传入除数    传入round的模式
		System.out.println(bd.divide(bd2,BigDecimal.ROUND_HALF_UP));
		//传入除数  传入精度   传入round的模式
		System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_UP));
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值