WS_CLIENT_JAVA项目中总结
-------------------------------------------------------------------------
Double.valueOf("121").doubleValue();
Double.parseDouble("121");
Date.valueOf("1992-1-1 10:10"10");
-----------------------------------------------------------------------------------------------------------------------------------------
mysql:date 只能存年月日
oracle:date 只能存年月日 时分秒,不存毫秒
timestamp 年月日 时分秒 毫秒
java中 :【父类】java.util.Date日期格式为:年月日时分秒 new java.util.Date()无参代表当前日期
【子类】java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据] new java.sql.Date(now)没有无参,必须传值
【子类】java.sql.Time日期格式为:时分秒 new java.sql.Time(now)没有无参,必须传值
【子类】java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒) new java.sql.Timestamp()没有无参,必须传值
java.lang.Object
....|__java.util.Date
..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time
---------------------------------------------------------------------------------------------------------------------------------------
java日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss <span style="background-color: rgb(255, 255, 102);">SSS</span>");
oracle日期格式
select to_timestamp('2012-02-03 10:29:46.453234','yyyy-mm-dd hh24:mi:ss.<span style="background-color: rgb(255, 255, 102);">ff6</span>') from dual;
PS: <span style="background-color: rgb(255, 255, 102);">ff后面的数字表示获得的毫秒位数,默认是6;一般ff3 获得三位毫秒数</span>。
select cast(sysdate as timestamp) from dual;
-------------------------------------------------------------------------------------------------------------------------------------------------
在使用Hibernate的原生态SQL对Oracle进行查询时,碰到查询char类型的时候始终返回的是一个字符,产生这个问题的主要原因确实是Hibernate再查询Oracle的时候,将char自动映射成character(varchar的子集)类型
select id,name,cast(state as varchar(2)) from tb
这种解决方法比较方便,只需要在查询语句指定char的返回类型。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Calendar
Calendar c = Calendar.getInstance();
c.setTime(befor);
int min = c.get(Calendar.MINUTE);
String minStr = min>10?""+min:"0"+min;
c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.HOUR_OF_DAY), Integer.parseInt(minStr), 0);
//false严格
sdf.setLenient(false);
public void testDate(){
new java.sql.Date(new java.util.Date().getTime());
// new java.util.Date(new java.sql.Date().getTime());//此处IDE报错 √
// new java.sql.Timestamp(new java.util.Date().getTime());//此处IDE报错 ×
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//false严格
sdf.setLenient(false);
String dateStr = sdf.format(new Date());
System.out.println(dateStr);
try {
Date date = sdf.parse("2015-1-0");
System.out.println(sdf.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
}
虽然java.util.date精确到年月日时分秒,但是隐藏着毫秒信息,可以通过格式转换,付给TimeStamp
public void testTimeStamp(){
try{
String dateString = "2010-08-20 12:00:00.125";
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",Locale.ENGLISH);//设定格式
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
System.out.println(dateTime);
java.util.Date datenow = new Date();
System.out.println(datenow);
java.sql.Timestamp datenowTime = new java.sql.Timestamp(datenow.getTime());
System.out.println(datenowTime);
}catch(Exception ex){
ex.printStackTrace();
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
封闭性规则:(byte:8 short:16 int:32 long:64
boolean:8 char:16 float:32 double:64 char是unicode编码 /u+16进制字符编码)
1、同种类型运算,得到同种类型结果
2、小于32位的运算按照int类型计算
3、字面量(自面值,直接量)的运算,在编译期间计算
(java中int字面量不超过char类型的范围可直接复制)
4、自动类型转换(运算时)
short s1 = 12;
byte b1 = 13;
char c1 = 15;
int i3 = s1+b1;
byte b4 = (byte) 225;//-31
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
package test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class time {
public static void main(String[] args){
time t = new time();
// t.test1();
// t.test2();
// t.test3();
// t.test4();
// t.testInt();
// t.testorg();
// t.testorg();
// String s = t.testException();
// System.out.println(s);
t.testDate();
}
public String test1(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date(System.currentTimeMillis());
String nowStr = sdf.format(now);
System.out.println("test1: "+nowStr);
return nowStr;
}
public String test2(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = "2015-03-19 13:9:15";
Date date = new Date();
try {
date = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
Date befor = new Date(date.getTime()-((date.getTime())%(10*60*1000)));
String beforStr = sdf.format(befor);
System.out.println("test2: "+dateStr+ "/" +beforStr);
return beforStr;
}
public String test3(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = "2015-03-19 13:9:15";
Date date = new Date();
try {
date = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
Date befor = new Date(date.getTime()-((date.getTime())%(10*60*1000)));
Calendar c = Calendar.getInstance();
c.setTime(befor);
int min = c.get(Calendar.MINUTE);
String minStr = min>10?""+min:"0"+min;
c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.HOUR_OF_DAY), Integer.parseInt(minStr), 0);
String tempStr = sdf.format(c.getTime());
System.out.println("test3: "+dateStr+"/"+tempStr);
return ""+tempStr;
}
public String test4(){
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH");
String dateStr = "2015-03-19 13:9:15";
Date date = new Date();
try {
date = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int min = c.get(Calendar.MINUTE);
min = min-min%10;
String timeStr = sdf2.format(date)+":"+(min>10?""+min:"0"+min)+":00";
System.out.println("test4: "+dateStr+"/"+timeStr);
return timeStr;
}
public void testInt(){
Integer i = Integer.valueOf("10").intValue();
Integer is = Integer.parseInt("10");
Integer is2 = Integer.parseInt("10",2);
System.out.println("i: "+i+"/is: "+is+"/is2: "+is2);
}
public void testorg(){
short s1 = 12;
byte b1 = 13;
char c1 = 15;
int i3 = s1+b1;
byte b4 = (byte) 225;//-31
System.out.println("i3: "+i3+"\nb4: "+b4);
// i3: 24
// b4: -31
}
public String testException(){
String s = "success";
try {
// int i = 1/0;
return s;
} catch (Exception e) {
}
return "final";
}
public void testDate(){
new java.sql.Date(new java.util.Date().getTime());
// new java.util.Date(new java.sql.Date().getTime());//此处IDE报错 √
// new java.sql.Timestamp(new java.util.Date().getTime());//此处IDE报错 ×
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//false严格
sdf.setLenient(false);
String dateStr = sdf.format(new Date());
System.out.println(dateStr);
try {
Date date = sdf.parse("2015-1-0");
System.out.println(sdf.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
<p>public void testTimeStamp(){
try{
String dateString = "2010-08-20 12:00:00.125";
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",Locale.ENGLISH);//设定格式
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
System.out.println(dateTime);
java.util.Date datenow = new Date();
System.out.println(datenow);
java.sql.Timestamp datenowTime = new java.sql.Timestamp(datenow.getTime());
System.out.println(datenowTime);
}catch(Exception ex){
ex.printStackTrace();
} </p><p> }</p>