date在java中用啥类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了date在java中用啥类型相关的知识,希望对你有一定的参考价值。

java语言中的date类介绍及使用
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。
1、使用Date类代表当前系统时间
Date d = new Date();
System.out.println(d);
使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象,显示的结果如下:
Sun Mar 08 16:35:58 CST 2009
在该格式中,Sun代表Sunday(周日),Mar代表March(三月),08代表8号,CST代表China Standard Time(中国标准时间,也就是北京时间(东八区))。
2、使用Date类代表指定的时间
Date d1 = new Date(2009-1900,3-1,9);
System.out.println(d1);
使用带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。例如上面的示例代码代表就是2009年3月9号。
实际代表具体的年月日时分秒的日期对象,和这个类似。
3、获得Date对象中的信息
Date d2 = new Date();
//年份
int year = d2.getYear() + 1900;
//月份
int month = d2.getMonth() + 1;
//日期
int date = d2.getDate();
//小时
int hour = d2.getHours();
//分钟
int minute = d2.getMinutes();
//秒
int second = d2.getSeconds();
//星期几
int day = d2.getDay();
System.out.println("年份:" + year);
System.out.println("月份:" + month);
System.out.println("日期:" + date);
System.out.println("小时:" + hour);
System.out.println("分钟:" + minute);
System.out.println("秒:" + second);
System.out.println("星期:" + day);
使用Date类中对应的get方法,可以获得Date类对象中相关的信息,需要注意的是使用getYear获得是Date对象中年份减去1900以后的值,所以需要显示对应的年份则需要在返回值的基础上加上1900,月份类似。在Date类中还提供了getDay方法,用于获得Date对象代表的时间是星期几,Date类规定周日是0,周一是1,周二是2,后续的依次类推。
4、Date对象和相对时间之间的互转
Date d3 = new Date(2009-1900,3-1,10);
long time = 1290876532190L;
//将Date类的对象转换为相对时间
long t = d3.getTime();
System.out.println(t);
//将相对时间转换为Date类的对象
Date d4 = new Date(time);
System.out.println(d4);
使用Date对象中的getTime方法,可以将Date类的对象转换为相对时间,使用Date类的构造方法,可以将相对时间转换为Date类的对象。经过转换以后,既方便了时间的计算,也使时间显示比较直观了。
参考技术A 常用的 java.util.Date 和 java.util.Calendar 这两种类型

java:BigDecimal还是Integer有啥区别??Oracel保存的数值类型对应java,java中用啥类型好?

java中 与 Oracle数据库对应的数据类型,当数据库保存为Number,或者别的类型,java中用什么类型好?我发现,我们的后台,int 几乎不要用到诶,都是用Integer什么原因?

第一个问题:
二者的区别就是运算后的精度问题,这个在对结果精度要求很高的情况下使用,如银行系统,电子商务交易。
第二个问题:
Number可以对应java中任意的数字类型,如整型和浮点型,java中选取当然还是和业务有关啦。
第三个问题:
最后一点说的就是开发经验了,有经验的人都这么干,为的就是能更好更直接的与数据库映射,更方便的使用框架进行开发如hibernate。追问

我想再问:当我用BigDecimal 来定义实体类时,报了个错:
org.hibernate.PropertyAccessException
后来我将类型改成Integer,又能成功执行了。你觉得这是什么原因??

数据库里面为Number类型,没有小数。

追答

Java数据类型 Hibernate数据类型 标准SQL数据类型(不同的DB可能有所差异)
java.math.BigDecimal big_decimal NUMERIC
映射的配置出问题了,导致映射不过去。

追问

我在数据库里面碰到BigDecimal这种类型了诶,这又是对应哪种类型,真是搞混了 !!

追答

你用的什么数据库了,哪有BigDecimal这种数据类型的,是不是DECIMAL啊?

追问

Oracle 是 Decimal ,哈哈

追答

你尽折腾我,这个可对应所有的数字类型 如整型和浮点型。

追问

借机再问一个,@Resource与@Autowired什么区别?
对高手而言,折腾一也下无所谓是吧,加分肯定的啦!

追答

@Autowire默认按照类型装配,默认情况下它要求依赖对象必须存在如果允许为null,可以设置它required属性为false,如果我们想使用按照名称装配,可以结合@Qualifier注解一起使用;
@Resource默认按照名称装配,当找不到与名称匹配的bean才会按照类型装配,可以通过name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象.
注意:如果没有指定name属性,并且按照默认的名称仍然找不到依赖的对象时候,会回退到按照类型装配,但一旦指定了name属性,就只能按照名称装配了.

追问

很清楚,真谢谢了。

参考技术A Integer是int的封装类,可以为null,所以映射一般为Integer,hibernate中也是这样的,推荐用封装类映射。 参考技术B 在后台写实体类时,int与Integer都可以,建议使用Integer,一切皆对象。 参考技术C BigDecimal和Integer精度不同 ,int 默认值为0; Integer 可以为 null。 参考技术D 用Integer吧

以上是关于date在java中用啥类型的主要内容,如果未能解决你的问题,请参考以下文章

数据库中 number date 类型 在java的封装类中 应该用啥类型?int 还是string?

java:BigDecimal还是Integer有啥区别??Oracel保存的数值类型对应java,java中用啥类型好?

Oracle数据库以date类型保存日期时,Java中用哪个类对应数据库的date类型?

java中用啥方法判断数据类型,就行 javascript中的 typeOf一样

在Java中用轮廓绘制字符串有啥更好的方法吗?

在c语言中用啥函数判定一个变量的类型