java中请问如何把 Tue Jan 02 00:05:52 CST 1900 转成oracle中number(例如1317362502)类型的 。
3个回答
展开全部
仅对于所给数据可以
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Test {
static public void main(String 参数[]){
SimpleDateFormat f=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.ENGLISH);
String t="Tue Jan 02 00:05:52 CST 1900";
try{
Date d=f.parse(t);
System.out.println(t+" => "+(d.getTime()/1000));
}catch (ParseException e){
e.printStackTrace();
}
}
}
=============
Tue Jan 02 00:05:52 CST 1900 => -2208930848
值得注意的是
所给的样本数据的年份是1900年,通常unix时间戳秒值(也就是你感知的“oracle中number”)只从1970年开始记录到2035年,扩展版也仅上延到191x年。不该用时间戳来记录1900这样历史年份。
所以输入数据的范围和选用相应的格式是你首先该确认的,然后才可能有正确的转换代码
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Test {
static public void main(String 参数[]){
SimpleDateFormat f=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.ENGLISH);
String t="Tue Jan 02 00:05:52 CST 1900";
try{
Date d=f.parse(t);
System.out.println(t+" => "+(d.getTime()/1000));
}catch (ParseException e){
e.printStackTrace();
}
}
}
=============
Tue Jan 02 00:05:52 CST 1900 => -2208930848
值得注意的是
所给的样本数据的年份是1900年,通常unix时间戳秒值(也就是你感知的“oracle中number”)只从1970年开始记录到2035年,扩展版也仅上延到191x年。不该用时间戳来记录1900这样历史年份。
所以输入数据的范围和选用相应的格式是你首先该确认的,然后才可能有正确的转换代码
更多追问追答
追问
这个范围我也不清楚数据库是一个产品数据库。里面的字段没有说明。我测试了一下1322184161对应的是 1970-01-16 01:16:54 我现在的时间该怎么对应呢?
那么现在对应的时间该怎么成为类似的?
我对这方面不懂麻烦多版帮忙。谢谢了
追答
如果1322184161对应1970年。那这个数据就不是用的时间戳而仅仅是java的timemillis时间毫秒戳。 前贴代码把d.getTime()/1000改成d.getTime(),可以处理历史上的任何年份 。
如果1322184161是unix时间戳值,这个数据将对应2011年11月25日某时(Fri Nov 25 09:22:41 CST 2011)。这更像是有效的数据。代码将只能正确处理1970-2035年之间的日期,这是这个格式的性质决定的,在python,php,c/c++等环境也一样。不要输入1900这样的年份。
前贴给的代码是针对后一种情况。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Test {
static public void main(String 参数[]){
SimpleDateFormat f=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.ENGLISH);
String t="Tue Jan 02 00:05:52 CST 1900";
try{
Date d=f.parse(t);
System.out.println(t+" => "+(d.getTime()/1000));
int ts=1322184161;
d.setTime(ts*1000L);
System.out.println(ts+" => "+f.format(d));
}catch (ParseException e){
e.printStackTrace();
}
}
}
=========
Tue Jan 02 00:05:52 CST 1900 => -2208930848000
1322184161 => Fri Nov 25 09:22:41 CST 2011
展开全部
Date date = new Date();//Tue Jan 02 00:05:52 CST 1900
date.getTime();//就得到你要的东西了1317362502
date.getTime();//就得到你要的东西了1317362502
追问
Date applyStartDate = (Date)listValue.get(index);
applyStartDate 的值为 Tue Jan 03 00:00:00 CST 2012
long numApplyStartDate = applyStartDate.getTime();
numApplyStartDate 的值为 1325520000000 位数有差距
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
getTimeMillis();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询