04 JAVA 常用类补充 Scanner和日历
2015-07-27 20:46
567 查看
哎哎哎,我好懒啊,整天watch variety shows and stay up all night for nothing meaningful,又没有钱去玩~(天气好热,科科~贱人就是矫情,还不想去找工作,自己这么说自己也是够了,双重人格~)—— bulltrue少年
一、Scanner
Scanner可以从特定文件(我们需要提供文件或者文件路径),输入流,字符串等产生对应值(使用正则表达式parse原语类型和字符串)
主要方法:
- hasNext() 假如输入还有别的token返回布尔值
- hasNext(正则表达式) 假如下个完整的token匹配这个正则表达式返回布尔值
- hasNextLine() 可以加入正则表达式
- hasNextInt() 可以加入正则表达式
- hasNextDouble() 可以加入正则表达式
- String next() 返回下一个token
String next(正则表达式)
- int nextInt() 可以加入正则表达式
- double nextDouble() 可以加入正则表达式
- String nextLine() 返回当前行
- close()
- useDelimiter(分隔符)
结果:
Amy Mark Anna Terrisa *
Amy
Mark
Anna
Terrisa
二、日期
- Date (时刻<->Date对象)
获取一个特定的瞬间时刻(精确到毫秒,long类型,从1970.1.1 00.00.00开始)并构造成Date类型对象
Date() //默认使用当前时间
Date(long)
主要方法:
- long getTime() 返回某个时刻
- setTime(long time) 设置Date对象来表示某个时刻
- boolean after(Date)
- boolean before(Date)
System.currentTimeMillis() 获取当前时刻
- DateFormat(抽象类,字符串<->Date对象)
子类SimpleDateFormat
SimpleDateFormat()
SimpleDateFormat(String pattern)
- String format(Date)
- Date parse(String)
1437999349348--1437999349348
Fri Aug 24 11:09:27 CST 2012
2012.08.24
Sat Aug 01 00:00:00 CST 2015
- Calendar(抽象类)
执行与日期处理有关的操作,它的子类GregorianCalendar表示的是阳历
主要方法:
- Date getTime() 获取表达日历时间值得日期对象
- setTime(Date)
- long getTimeInMillis() 获取表达日历时间的long值
- setTimeInMillis(long)
- getTimeZone() 获取时区
- add(区域,数值)
- set(区域,数值)
- get(区域)
习题:可视化日历
结果:
一、Scanner
Scanner可以从特定文件(我们需要提供文件或者文件路径),输入流,字符串等产生对应值(使用正则表达式parse原语类型和字符串)
主要方法:
- hasNext() 假如输入还有别的token返回布尔值
- hasNext(正则表达式) 假如下个完整的token匹配这个正则表达式返回布尔值
- hasNextLine() 可以加入正则表达式
- hasNextInt() 可以加入正则表达式
- hasNextDouble() 可以加入正则表达式
- String next() 返回下一个token
String next(正则表达式)
- int nextInt() 可以加入正则表达式
- double nextDouble() 可以加入正则表达式
- String nextLine() 返回当前行
- close()
- useDelimiter(分隔符)
import java.util.*; public class testScanner { public static void main(String[] args) { String c = ""; Scanner sc1 = new Scanner(System.in); while(sc1.hasNext()){ c = sc1.next(); if(c.equals("*")){ break; } System.out.println(c); } sc1.close(); } }
结果:
Amy Mark Anna Terrisa *
Amy
Mark
Anna
Terrisa
二、日期
- Date (时刻<->Date对象)
获取一个特定的瞬间时刻(精确到毫秒,long类型,从1970.1.1 00.00.00开始)并构造成Date类型对象
Date() //默认使用当前时间
Date(long)
主要方法:
- long getTime() 返回某个时刻
- setTime(long time) 设置Date对象来表示某个时刻
- boolean after(Date)
- boolean before(Date)
System.currentTimeMillis() 获取当前时刻
- DateFormat(抽象类,字符串<->Date对象)
子类SimpleDateFormat
SimpleDateFormat()
SimpleDateFormat(String pattern)
Date and Time Pattern | Result |
---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" | 2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" | Wed, Jul 4, '01 |
"h:mm a" | 12:08 PM |
"hh 'o''clock' a, zzzz" | 12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" | 0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" | 02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" | Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" | 010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" | 2001-07-04T12:08:56.235-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" | 2001-07-04T12:08:56.235-07:00 |
"YYYY-'W'ww-u" | 2001-W27-3 |
- Date parse(String)
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class testDate { public static void main(String[] args) { Date d = new Date(); long ts = d.getTime(); System.out.println(ts+"--"+System.currentTimeMillis()); d.setTime(1345777767889L); System.out.println(d); DateFormat df = new SimpleDateFormat("yyyy.MM.dd"); System.out.println(df.format(d)); String date = "2015.8.1"; //要注意格式的统一,比如2015-8-1就不可以啦 try { System.out.println(df.parse(date)); } catch (ParseException e) { e.printStackTrace(); }结果:
1437999349348--1437999349348
Fri Aug 24 11:09:27 CST 2012
2012.08.24
Sat Aug 01 00:00:00 CST 2015
- Calendar(抽象类)
执行与日期处理有关的操作,它的子类GregorianCalendar表示的是阳历
主要方法:
- Date getTime() 获取表达日历时间值得日期对象
- setTime(Date)
- long getTimeInMillis() 获取表达日历时间的long值
- setTimeInMillis(long)
- getTimeZone() 获取时区
- add(区域,数值)
- set(区域,数值)
- get(区域)
import java.util.*; public class testCalendar { public static void main(String[] args) { //Calendar c1 = new GregorianCalendar(); Calendar c = Calendar.getInstance(); //用默认的timezone和locale来创建日历 Date date = new Date(); c.setTime(date); System.out.println(c.get(Calendar.DAY_OF_WEEK)); //一周的第几天 System.out.println(c.get(Calendar.DAY_OF_YEAR)); //一年中的第几天 System.out.println(c.get(Calendar.DAY_OF_MONTH)); //一月中的第一天 System.out.println(c.get(Calendar.DATE)); //日期 System.out.println(c.get(Calendar.HOUR)); //显示目前几点 System.out.println(c.get(Calendar.YEAR)); System.out.println(c.get(Calendar.WEEK_OF_MONTH)); //一个月中的第几周 System.out.println(c.get(Calendar.WEEK_OF_YEAR)); //一年中的第几周 } }
习题:可视化日历
import java.text.*; import java.util.*; public class VisualCalendar { public static void main(String[] args) { System.out.print("输入日期,格式为YYYY-MM-DD:"); Scanner sn = new Scanner(System.in); String s = sn.next(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = df.parse(s); System.out.println(date+"\n"); Calendar c = new GregorianCalendar(); c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, 1); int day_week = c.get(Calendar.DAY_OF_WEEK); int month = c.getActualMaximum(Calendar.DATE); System.out.println("日\t一\t二\t三\t四\t五\t六"); for(int j = 1; j < day_week; j++) { System.out.print(" \t"); } for(int i = 1; i <= month; i++) { if(day == i) System.out.print("*"); System.out.print(i+"\t"); if((i+day_week-1)%7 == 0) System.out.println("\n"); } } catch (ParseException e) { System.out.println("格式错误!"); } } }
结果:
相关文章推荐
- eclipse下的ssh框架整合过程及测试
- Java实现附近地点搜索
- Java实现附近地点搜索
- 设计模式-java内置观察者模式解析
- java设计模式之基本原则
- Spring MVC之@RequestBody, @ResponseBody 详解
- java文本输入
- Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
- Struts2.3.24项目配置所需最少依赖jar包
- Jps介绍以及解决jps无法查看某个已经启动的java进程问题
- Java多态中的注意事项
- Java基础——集合框架(四)
- spring mvc中的@PathVariable
- 深入理解JAVA虚拟机笔记-05
- eclipse创建maven管理的web项目
- 【转】java中的TreeMap与TreeSet关系及实现(红黑树)
- 二叉树的三种排序Java实现
- java中的异常
- 你的Java日志,有没有用这些改进办法
- JAVA学习第十天