12-1-27进步一小点

来源:互联网 发布:郎咸平 离婚 知乎 编辑:程序博客网 时间:2024/04/30 13:34

1,关于日期转换,做下笔记

一般在j2se中,我们利用getDate()获取到的Date()是java.sql.Date类型,但是我们如何转化为我们自己想要的比如xx年xx月xx日,类似这样比较人性化的格式。

这里我们引入java.text.SimpleDateFormat,

Date d=rs.getDate("");;

SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");

sdf.format(d);

这样达到格式转的效果


关于第二点,如何提取Date中的 年,月,日,当我们读取api文档的时候可以发现很多方法已经无法使用了,都被java.util.Calendar里面的相关方法取代了

 这里我们就借用Calendar,但是这里我们在读取该方法,实例化的过程中,一定要认真读取说明;

 1)该构造方法是protected 2)我们可以通过调用静态的方法getInstance()获取该对象,但是一定明白该对象代表的是当前的时间,时区的,并不是代表我们的从数据库取出来的。这样在调用该类的方法的时候,都是基于当前的时间,时区进行的 一切也就无意义了--------很重要 谨记于心

好在我们可以使用setTime(Date x)更改我们对象代表的时间,时区。

代码如下:Calendar c=Calendar.getInstance();

c.setTime(d);//d是上例的数据库提取出来的

c.get(Calendar.MONTH);


关于第三点,如果我在数据库里面存的是2012-1-1 12:30:12这样一直到秒了 如果提取后面的多少分 多少秒呢

这里我们得谈下Date构造了。java.util.Date 下设三个子类java.sql.Date java.sql.Time java.sql.Timestamp

其中第一个只是截取了java.util.Date的年月日,第二个截取了后面的小时,分秒, 第三个则很成功的获取了 前两者都具备的内容

因此在1中我们提到的利用getDate() 这里返回只是java.sql.Date,如果要获取小时 分秒是不可能的----------这里也很重要

---------------

如果想获取年月日 小时 分秒 那就得想办法获取Timestamp,查看ResultSet 发觉有方法getTimestamp("") 这样我们就得到了Timestamp对象,再通过1的格式化 格式就是浮云


第四点 是关于我们自己输入的时间格式字符串如何转为Date类型存入数据库,这里有个valueOf("")但是里面的字符串一定要满足

“yyyy-mm-dd”才可以,这里我们唯一能做的是利用正则表达式先进行客户端的输入格式匹配判定提示,才使用该方法。


下面就是关于时区的问题,可能我不定只是想知道中国 ,国外的呢

可以引入java.util.GregorianCalendar,

其中有个构造方法

GregorianCalendar(TimeZone zone)就获得该时区的Calendar,因为GregorianCalendar是继承了java.util.Calendar

关于时区 可以通过TimeZone.getTimeZone(“”);

关于该方法里面的参数,可以通过一个for(String str:TimeZone.getAvailableIDs())打印出来相关的时区以及id

这样在调用Calendar里面的方法得到我们要的数据


2也是关于数据格式的问题

 一般我们通过标准输入,得到一些参数,都对应的保存在String args[]里面 这里要单独说明下 这里的args[0]就是我们输入的第

一个参数,不同于 c 里面的argv[0]

比如我们数据库里面需要的是int类型的一数值, 在stdin得到了13肯定是字符串 ,调用Integer.parse()进行转是没什么问题的


但是如果是xqwe呢,这里需要我们使用if语句进行判定。。。完全不需要,j2se里面的的Exception就帮我们做了这份工作,一旦我们调用该方法转不了,他会报异常,我们只需在下面写下相关提示,System.exit(-1);就ok了。------思想很重要

以前c的思路总是需要我们在自己转之前,会判断符合不符合条件,符合再转,在这里我们只用调用方法让他自己转,转不好报异常就行了.


原创粉丝点击