版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第18章,舍遗补缺 日期、时间 日志(Logging) 讯息绑定,使用Date,取得系统的时间,可以使用System.currentTimeMillis()方法 从1970年1月1日0时0分0秒开始,到程序执行取得系统时间为止所经过的毫秒数,public class CurrentTime public static void main(String args) System.out.println(现在时间 + System.currentTimeMillis(); ,使用Date,Date date = new Date(); System.out.println(现在时间 + date.
2、toString(); System.out.println(自1970/1/1至今的毫秒数 + date.getTime();,现在时间Mon Jun 06 22:03:52 GMT+08:00 2005 自1970/1/1至今的毫秒数1118066632890,使用Date,对日期时间作格式设定,则可以使用java.text.DateFormat来作格式化,Date date = new Date(); DateFormat dateFormat = new SimpleDateFormat(EE-MM-dd-yyyy); System.out.println(dateFormat.for
3、mat(date);,星期一-06-06-2005,使用Date,直接使用DateFormat上的静态getDateTimeInstance()方法来指定格式,Date date = new Date(); /简短信息格式 DateFormat shortFormat = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT); /中等信息格式 DateFormat mediumFormat = DateFormat.getDateTimeInstance( DateFormat.MEDIUM, DateForma
4、t.MEDIUM); /长信息格式 DateFormat longFormat = DateFormat.getDateTimeInstance( DateFormat.LONG, DateFormat.LONG);,使用Date,/详细信息格式 DateFormat fullFormat = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL); System.out.println(简短信息格式: + shortFormat.format(date); System.out.println(中等信息格式: + m
5、ediumFormat.format(date); System.out.println(长信息格式: + longFormat.format(date); System.out.println(详细信息格式: + fullFormat.format(date);,简短信息格式:2005/6/6下午10:19 中等信息格式:2005/6/6下午10:19:13 长信息格式:2005年6月6日 下午10时19分13秒 详细信息格式:2005年6月6日 星期一 下午10时19分13秒GMT+08:00,使用Date,指定日期的区域显示方式,指定时要使用一个java.util.Locale实例作为自
6、变量,/取得目前时间 Date date = new Date(); / en:英语系US:美国 Locale locale = new Locale(en, US); /简短信息格式 DateFormat shortFormat = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT, locale);,使用Calendar,Calendar的一些方法会取回int型态数字 取回的数字对应于Calendar中定义的常数 传回的4并不是代表目前时间是4月份,而是对应于Calendar.MAY常数的值,Calenda
7、r rightNow = Calendar.getInstance(); System.out.println(rightNow.get(Calendar.YEAR);,System.out.println(rightNow.get(Calendar.MONTH);,使用Calendar,显示传回值的真正意涵,String months =一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月; Calendar rightNow = Calendar.getInstance(); int monthConstant = rightNow.get(Ca
8、lendar.MONTH); System.out.println(monthsmonthConstant);,使用Calendar,显示传回值的真正意涵,String dayOfWeek = , 日, 一, 二, 三, 四, 五, 六; Calendar rightNow = Calendar.getInstance(); int dayOfWeekConstant = rightNow.get(Calendar.DAY_OF_WEEK); System.out.println(dayOfWeekdayOfWeekConstant);,简介日志,在Java SE中的java.util.log
9、ging套件提供了一系列的日志工具类别 首先要取得java.util.logging.Logger实例,Logger logger = Logger.getLogger(LoggingDemo); try System.out.println(args0); catch(ArrayIndexOutOfBoundsException e) logger.warning(没有提供执行时的自变量!); ,日志的等级,在进行讯息的日志记录时,依讯息程度的不同,您会设定不同等级的讯息输出,Logger logger = Logger.getLogger(loggingLevelDemo); logger
10、.severe(严重讯息); logger.warning(警示讯息); (一般讯息); logger.config(设定方面的讯息); logger.fine(细微的讯息); logger.finer(更细微的讯息); logger.finest(最细微的讯息);,日志的等级,Logger的默认等级是INFO 默认等级是定义在执行环境的属性文件perties中 JRE安装目录的lib目录下 Logger预设的处理者(Handler)是java.util.logging.ConsolerHandler,日志的等级,Logger logger = Lo
11、gger.getLogger(loggingLevelDemo2); /显示所有等级的讯息 logger.setLevel(Level.ALL); ConsoleHandler consoleHandler = new ConsoleHandler(); /显示所有等级的讯息 consoleHandler.setLevel(Level.ALL); /设定处理者为ConsoleHandler logger.addHandler(consoleHandler); logger.severe(严重讯息); logger.warning(警示讯息); (一般讯息); logger
12、.config(设定方面的讯息); logger.fine(细微的讯息); logger.finer(更细微的讯息); logger.finest(最细微的讯息);,日志的等级,想要关闭所有的讯息,可以设定為Level.OFF Logger的server()、warning()、info()等方法,实际上是个便捷的方法 可以直接使用log()方法并指定等级来执行相同的作用,日志的等级,Logger logger = Logger.getLogger(loggingLevelDemo3); logger.setLevel(Level.ALL); ConsoleHandler consoleHan
13、dler = new ConsoleHandler(); consoleHandler.setLevel(Level.ALL); logger.addHandler(consoleHandler); logger.log(Level.SEVERE,严重讯息); logger.log(Level.WARNING,警示讯息); logger.log(Level.INFO,一般讯息); logger.log(Level.CONFIG,设定方面的讯息); logger.log(Level.FINE,细微的讯息); logger.log(Level.FINER,更细微的讯息); logger.log(L
14、evel.FINEST,最细微的讯息);,Handler、Formatter,Logger预设的输出处理者(Handler)是ConsolerHandler ConsolerHandler的输出是System.err物件 讯息的默认等级是INFO 可以在JRE安装目录下lib目录的perties中看到,handlers= java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level = INFO,Handler、Formatter,Java SE提供了五个预设的Handler java.ut
15、il.logging.ConsoleHandler java.util.logging.FileHandler java.util.logging.StreamHandler java.util.logging.SocketHandler java.util.logging.MemoryHandler,Handler、Formatter,Logger logger = Logger.getLogger(handlerDemo); try FileHandler fileHandler = new FileHandler(%h/myLogger.log); logger.addHandler(f
16、ileHandler); (测试讯息); catch (SecurityException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); ,自定义Formatter,继承抽象类Formatter,并重新定义其format()方法,public class TableFormatter extends Formatter public String format(LogRecord logRecord) return LogRecord info: + logRecord.getSour
17、ceClassName() + n + Levelt|tLoggerNamet|tMessaget|n + logRecord.getLevel() + t|t + logRecord.getLoggerName() + t|t + logRecord.getMessage() + t|nn; ,自定义Formatter,Logger logger = Logger.getLogger(tableFormatter); try for(Handler h : logger.getParent().getHandlers() if(h instanceof ConsoleHandler) h.s
18、etFormatter(new TableFormatter(); (讯息1); logger.warning(讯息2); catch (SecurityException e) e.printStackTrace(); ,Logger阶层关系,给getLogger()方法的名称是有意义的 给定“onlyfun”,实际上您将从根(Root)logger继承一些特性 再取得一个Logger实例,并给定名称onlyfun.caterpillar,则这次取得的Logger将继承onlyfun这个Logger的特性,使用ResourceBundle,用java.util.Reso
19、urceBundle来作讯息绑定 perties .properties档案必须放置在Classpath的路径设定下,onlyfun.caterpillar.welcome=Hello =World,使用ResourceBundle,/绑定perties ResourceBundle resource = ResourceBundle.getBundle(messages); /取得对应讯息 System.out.print(resource.getString( onlyfun.caterpill
20、ar.welcome) + !); System.out.println(resource.getString( ) + !);,格式化讯息,String message = Hello! 0! This is your first 1!; Object params = new Object caterpillar, Java; MessageFormat formatter = new MessageFormat(message); /显示格式化后的讯息 System.out.println(formatter.format(params);,格式化讯息,onlyfun.caterpillar.greeting=Hello! 0! This is your first 1!,/绑定perties ResourceBundle resource = ResourceBundle.getBundle(messages2); String message = resource.getString( onlyfun.caterpillar.greeting)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理课件下载平台-1
- 护理实践中的护理科研
- 护理沟通技巧与人际关系
- 船台总装成本控制方案
- 储能安全检测方案
- 光储充安全管理方案
- 《构网型独立储能电站性能优化提升方案》
- 医院智慧导诊改造方案
- 温室大棚保温系统方案
- 护理实践中的证据为基础的护理提纲
- 《低聚糖功能性质》课件
- 《森林植物》课件-03 榆科
- 华南理工大学《工程热力学》2023-2024学年第一学期期末试卷
- T-NBHTA 004-2024 热处理企业环境保护技术规范
- 08 西北地区(课件)-备战2025高考地理之中国地理主题探究式复习
- 2024年广西南宁市小升初数学试卷(含答案)
- 大学语文全套教学课件
- 《矿物岩石学教学课件》1-2 矿物学
- 压力管道培训课件
- 输液技术与临床应用
- 全国实验室安全知识竞赛试题库(附含答案)
评论
0/150
提交评论