java中请问如何把 Tue Jan 02 00:05:52 CST 1900 转成oracle中number(例如1317362502)类型的 。

 我来答
百度网友9308069
2012-01-15 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1915万
展开全部
仅对于所给数据可以
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
邗启3V
2012-01-15 · TA获得超过7271个赞
知道大有可为答主
回答量:1413
采纳率:100%
帮助的人:1391万
展开全部
Date date = new Date();//Tue Jan 02 00:05:52 CST 1900
date.getTime();//就得到你要的东西了1317362502
追问
Date applyStartDate = (Date)listValue.get(index); 
applyStartDate 的值为 Tue Jan 03 00:00:00 CST 2012

long numApplyStartDate = applyStartDate.getTime();
numApplyStartDate 的值为 1325520000000 位数有差距
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zouweiyi890418
2012-01-15
知道答主
回答量:4
采纳率:0%
帮助的人:5370
展开全部
getTimeMillis();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式