请问怎么把"yyyy-MM-dd HH:mm:ss"格式的字符串转换成纯数字的long类型。
ex: String s1 = "2009-12-02 10:17:51";
String s2 = "2009-11-02 22:22:22";s1的时间大于s2的时间,去掉“-”和空格转换成long类型来判断s1>s2。请问有什么好方法实现吗?
(由于小弟这方面的原因,不能用SimpleDateFormat类转换成Date后再判断)
ex: String s1 = "2009-12-02 10:17:51";
String s2 = "2009-11-02 22:22:22";s1的时间大于s2的时间,去掉“-”和空格转换成long类型来判断s1>s2。请问有什么好方法实现吗?
(由于小弟这方面的原因,不能用SimpleDateFormat类转换成Date后再判断)
解决方案 »
- 关于JXTA的一些问题~ 高手帮忙解答一下~
- 高分求助:Struts+Sping整合框架中,大文件上传至Oracle的BLOB类型的问题。
- 2年J2SE经验,能找到J2EE的工作吗
- 如何在struts2中取得在applicationContext.xml文件中定义的数据源
- Sun官方教程有错!?
- 高手指教!谢谢
- STRUTS+ HIBERNATE3.0的错误,崩溃了~
- Tomcat 4.1启动怎么是一个dos窗口的界面啊。
- ◆200分●求weblogic8.1在MyEclipse中的集成
- struts2+ ajax跨域访问接返回参数
- 这个sql改为hql怎么写?
- 做个客户管理系统 基本信息如何动态的选择性加载字段
用string的split方法, 首先用空格, 截成2009-12-02和10:17:51两部门
日期部门用-截成2009, 12, 02三部门, 时间部门用:截成10, 17, 51三部门
剩下的工作就是数学运算嘛
public class Main
{
public static Calendar getCalendar(String now)
{
int year = Integer.parseInt(now.substring(0, 4));
int month = Integer.parseInt(now.substring(5, 7));
int date = Integer.parseInt(now.substring(8, 10));
int hour = Integer.parseInt(now.substring(11, 13));
int minute = Integer.parseInt(now.substring(14, 16));
int second = Integer.parseInt(now.substring(17, 19));
Calendar c1 = Calendar.getInstance();
c1.set(Calendar.YEAR, year);
c1.set(Calendar.MONTH, month);
c1.set(Calendar.DATE, date);
c1.set(Calendar.HOUR, hour);
c1.set(Calendar.MINUTE, minute);
c1.set(Calendar.SECOND, second);
return c1;
}
public static void main(String[] args)
{
String s1 = "2009-12-02 10:17:51";
String s2 = "2009-11-02 22:22:22";
if(getCalendar(s1).before(getCalendar(s2)))
{
System.out.println("s1 before s2");
}
else
{
System.out.println("s1 after s2");
}
}
}
{
public static void main(String[] args){ String s1 = "2009-12-02 10:17:51";
String s2 = "2009-11-02 22:22:22";
Long s1ToLong= new Long(s1.replaceAll("[^\\d]+","")); //将非数字替换成空 Long s2ToLong= new Long(s2.replaceAll("[^\\d]+","")); //将非数字替换成空 System.out.println(s1ToLong+" "+s2ToLong ); System.out.println(s1ToLong>s2ToLong );
}
}
不好意思, 我上面说的这个在java中行不通, 刚问老大, 说java中正则不支持命名组..,
用正则那我就只有这个办法了:Pattern p = Pattern.compile("^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$");
Matcher m1 = p.matcher("2009-11-02 22:22:22");
Matcher m2 = p.matcher("2009-11-02 22:22:22");
int[] time1 = new int[6];
int[] time2 = new int[6];
time1[0] = (int)m.group(1);
time1[1] = (int)m.group(2);
time1[2] = (int)m.group(3);
time1[3] = (int)m.group(4);
time1[4] = (int)m.group(5);
time1[5] = (int)m.group(6);
time2[0] = (int)m.group(1);
time2[1] = (int)m.group(2);
time2[2] = (int)m.group(3);
time2[3] = (int)m.group(4);
time2[4] = (int)m.group(5);
time2[5] = (int)m.group(6);
boolean isEquals = True;
for(int i = 0; i < time1.length && isEquals; i++) {
if(time1[i] != time2[i]) {
System.out.println(time1[i]<time2[i]?"时间1小":"时间2小");
isEquals = !isEquals;
}
}
System.out.println("两个时间相等");