import java.util.Calendar; import java.util.Date; /* * * 1学习的是工具类,util包下面 * 2printf格式化输出, * 1类似的有String.format() * 2格式化输出有时更加方便 * */ public class Before { public static void main(String[] args) { testDate(); } public static void testPrintf(){ //idea缩写就是 souf int id = 100; String name = "李四"; short age = 18; System.out.println("编号: "+ id +",姓名:"+name+",年龄"+age+"岁 "); //格式化输出,相比上边可以节约内存 System.out.printf("编号:%d,姓名:%s,年龄:%d岁。",id,name,age); for (int i = 0; i > 15; i++) { //参数匹配问题 MissingFormatArgumentException //<:代表,前者用哪个,我用那个,共用一个参数, // 1$就格式化第二个参数 System.out.printf("%d %<02d %1$03d%n",i,3); //和上面的一样 System.out.printf("%d %02d %03d%n",i,i,i); //左对齐(用0补充或空白),右对齐(默认的) System.out.printf("添加0或空白右对齐:%09d,%< 9d。\n",i); System.out.printf("添加-左对齐:%-9d,",i); //添加符号位:+ System.out.printf("添加符号位:%+-9d,",i); } //16进制,8进制,2进制,10进制输出 //16进制输出 red green blue --调色板 255 - ff 100 - 64 System.out.printf("\n十六进制;%02x%n",255); //8进制输出 System.out.printf("八进制%02o,",255); //2进制--java没有2进制输出 // System.out.printf("",255); //输出浮点型 System.out.printf("%.2f",20.135); System.out.println(String.format("%.2f --- %.5f",10f,20D)); System.out.println(); //System类可以拿到系统时间戳 System.out.printf("%tF %<tT,",System.currentTimeMillis()); System.out.printf("%tF %<tT,",new Date().getTime()); //通过System类对象的currentTimeMillis() 方法返回当前系统的时间戳 //输出 .toString()方法 long now = System.currentTimeMillis(); System.out.println(now); //时间戳格式化 System.out.printf("%tF %<tT,",now); System.out.printf("%tF %<tT,",0l);//0l对应时间是8时 // System.out.printf("年月日 %tF 时间%<tT",1l);//对应时间和上面一样 //单位是毫秒 System.out.printf("%tF %<tT,",1000l);//这就是1秒 //年月日时分秒星期时间戳格式化输出 m d都是小写 System.out.printf("%tY年,%<tm月,%1$td日,%<tH时,%<tM分,%<tS秒 %<tA %n",now); //图片命名为时间 System.out.println("时间戳为"+now); System.out.println(String.format("%tY%<tm%<td%<tH%<tM%<tS.png",now)); //将时间用long类型的数表示。long类型的数可以表示时间 //问题:增量是1的话单位是什么 //时间戳由来 /* * 时间戳本质上是一个long类型的数,用于表示时间 * * */ } //学习java 工具类 java.util.Date; public static void testDate(){ Date date = new Date(); //返回一个时间戳 就是long类型的数 System.out.println(date.getTime()); //分配了8个字节 //复习一下格式化输出 //过程 // 首先date返回一个时间戳,和System.currentTimeMillis类似。 //然后格式化输出,因为时间戳就是long类型的数 //1就是1毫秒加上基础时间 //-1这种应该是1970年之前 System.out.printf("%tF %<tT%n",date.getTime()); //再次尝试-1000l格式化输出 //时间--也是一个标志 //这里是把-1000其实是short类型的,强制变为long 。这里不会自动变 //强类型匹配语言 //-1000变为long类型值大小没有变,然后运算 System.out.printf("%tF %<tT\n",-1000l);//1970-01-01 07:59:59 System.out.println(date.getYear());//拿到的日期减了1900。虽然时间戳一样但值不对。 //时间戳表示一个时间点。 //需要转换原则 //拿到一个原则--取有时一个原则。Linux系统就有问题 //引入了日历类Calendar 通过日历类拿到年月日 Calendar calendar = Calendar.getInstance(); //问题:为什么没有new,new就是新的东西。占内存啊,一个就行了 //一个可以处理多个问题。比如,单例模式,flag标志 //本质:1个就够了 //单例模式: //flag标志:类似单例模式,1个就够了,能省则省--最简原则 //原则 //保护,->私有 //不让用户new,给你提供方法 //同样这里calendar一个也就够了 //得到年 System.out.println(calendar.get(Calendar.YEAR)); //Calendar.YEAR是一个特殊的属性---常量->因为它是大写的 //这种常量也可称为字段, //所以写一个1也可以 System.out.println(calendar.get(1)); //特点参数是类的内部的属性 //通过类内参数调用方法 } }
javaSE练习Day02 随便练习前面的讲的
最新推荐文章于 2025-05-07 19:46:16 发布