java-day05

SinmpleDateFormat

  • java.text.SimpleDateFormat是一个以语言环境有关的方式来格式化和解析日期的具体类,他允许进行格式化(日期->文本)解析(文本->日期)和规范化的构造方法
  • -SimpleDateFormat()
  • -SimpleDateFormat(String pattern )
  • -final String format(Date date)  Date->String      将给定的字符串格式的日期解析为一个Date对象,(字符串的格式和sdf的格式要一致)字符串格式和simpledateformat的格式不一致,在解析时发生异常
  • -Date parse(String source)throws ParseException   String -> Date  将给定的 Date 格式化为日期/时间字符串
  •         String datestr="2008:08:08 08:08:08";
    		String format= "yyyy:MM:dd hh:mm:ss";
    		SimpleDateFormat sdf = new SimpleDateFormat(format);
    		/*
    		 * 将给定的字符串格式的日期解析为一个Date对象,(字符串的格式和sdf的格式要一致)
    		 * parse(String datestring);
    		 * 
    		 * java.text.ParseExcwption:Unparseable date
    		 * 字符串格式和simpledateformat的格式不一致,在解析时发生异常
    		 */
    		Date date =sdf.parse(datestr);
    		System.out.println(date);
    package day05;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    
    public class Demo2 {
    	public static void main(String[] args) throws ParseException {
    		/*
    		 * 从控制台接收用户输入的生日格式,1999-08-08
    		 * 计算从出生到现在活了多少
    		 * 输出
    		 */
    		
    		Scanner scn = new Scanner(System.in); 
    		SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd");
    		System.out.println("请输入您的生日格式为yyyy-MM-dd");
    		//获取控制台输入的字符串str
    		String str =scn.nextLine();
    		//将字符串转换为Date类型
    		Date date = sdf.parse(str);//用户的生日
    		System.out.println(date);
    		long blong = date.getTime();//毫秒数
    		System.out.println(blong);
    		//获取当前的时间
    		Date date1 = new Date();
    		long dlong = date1.getTime();
    		long day =24*60*60*1000;
    		long c=dlong-blong;
    		System.out.println(c/day);
    		
    		System.out.println(day*20000);
    		date.setTime(day*20000+blong);
    		System.out.println(date);
    	}
    }
    

     

字母     日期或时间元素             表示                 示例  

G  Era 标志符              Text             AD  
y  年  Year                  1996;             96  
M  年中的月份                  Month              uly; 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  

calendar

java.util.Calendar封装日历信息,其主要作用在于,其方法可以对时间分量进行运算
calendar是抽象类,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统

-getInstance();Calendar->获取一个Calendar的实例

Calendar calendar =Calendar.getInstance();
System.out.println(calendar);

getTime();Date -> 该方法获取一个Date实例,此方法是Calendar中, 在Date的getTime()是获取Date中维护的毫秒值

		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //将Date对象格式化为String 字符串
		String datestr=sdf.format(date);
		System.out.println(datestr);

setTime(Date date);void->使用给定的 Date 设置此 Calendar 的时间。

	public static void main(String[] args) {
		/*
		 * 将Date转换成Calendar
		 */
		Date date = new Date();//演示后面的时间
		date.setTime((24*60*60*1000)+date.getTime());
		Calendar calendar =Calendar.getInstance();
		System.out.println(calendar);
		//演示当前的时间
		/*
		 * 使用给定的 Date 设置此 Calendar 的时间。
		 * setTime(Date date);void
		 */
		calendar.setTime(date);
		System.out.println(calendar);
		
	}

set(int field, int value);void-> 将给定的日历字段设置为给定值。

		//日期
		calendar.set(Calendar.YEAR,2008);//年
		calendar.set(Calendar.MONTH,0);//月
		calendar.set(Calendar.DATE,10);//DATE等同于DAY_OF_MONTH
		calendar.set(Calendar.DAY_OF_MONTH,10);//天
		
		//时间
		calendar.set(Calendar.HOUR_OF_DAY,20);//小时
		calendar.set(Calendar.MINUTE,8);//分钟
		calendar.set(Calendar.SECOND,8);

get(int field);int -> 返回给定日历字段的值。

		System.out.println(date);
		System.out.println(calendar.get(Calendar.YEAR));
		System.out.println(calendar.get(Calendar.MONTH)+1);
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
		System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
		System.out.println(calendar.get(Calendar.MINUTE));
		System.out.println(calendar.get(Calendar.SECOND));
		System.out.println(calendar.get(Calendar.DAY_OF_WEEK));

add(int field, int amount) ;void -> 根据日历的规则,为给定的日历字段添加或减去指定的时间量

	public static void main(String[] args) {
		/*
		 * Calendar 时间计算
		 */
		Calendar cal = Calendar.getInstance();
		/*
		 * add(int feild,int n)
		 * 给当前的Calendar进行添加天数
		 * 负值是减天数,正值是加天数
		 */
		cal.add(Calendar.DATE,14);
		cal.add(Calendar.MONTH, 2);
		//三个月后的十天后 本周的周三是哪一号
		int xq = cal.get(Calendar.DAY_OF_WEEK)-1;
//		cal.add(Calendar.DATE, 3-xq);
		cal.set(Calendar.DAY_OF_WEEK, 4);
		System.out.println(cal.getActualMaximum(Calendar.DATE));
		Date date=cal.getTime();
		Demo7.print(date);//静态方法
	}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值