浏览 6853 次
锁定老帖子 主题:一道java题目
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-30
eg: "today is 20080830" 输出 "today is 2008-08-30" "今天的日期是20080830" 输出 "今天的日期是2008-08-30" "the project is 7899744" 输出 "the project is 7899744" 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-01
package com.ghostdom.util;
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /* * 格式1 20080111 */ private static final String DATE_FORMAT_1 = "yyyyMMdd" ; /* * 格式2 2008-01-11 */ private static final String DATE_FORMAT_2 = "yyyy-MM-dd" ; public String formatDate(String str) { /* * 去除字符串所有空格 */ String str_array[] = str.split("\\s"); String rem_spaces = ""; for (int i = 0; i < str_array.length; i++) { rem_spaces += str_array[i] ; } /* * 截取非日期部分字符串 */ String str_array_two[] = rem_spaces.split("\\d"); String non_digital ="" ; for (int i = 0; i < str_array_two.length; i++) { non_digital += str_array_two[i]; } // 获得日期字符串 String str_date = rem_spaces.replaceAll(non_digital, ""); // if(str_date==null || str_date.equals("")||str_date.length() < 7){ return str ; } SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT_1); SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_2); try { Date date = format.parse(str_date); return str.replaceAll(str_date, dateFormat.format(date)); } catch (ParseException e) { return str; } } } |
|
返回顶楼 | |
发表时间:2008-09-01
Tceisk9584 写道 package com.ghostdom.util;
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /* * 格式1 20080111 */ private static final String DATE_FORMAT_1 = "yyyyMMdd" ; /* * 格式2 2008-01-11 */ private static final String DATE_FORMAT_2 = "yyyy-MM-dd" ; public String formatDate(String str) { /* * 去除字符串所有空格 */ String str_array[] = str.split("\\s"); String rem_spaces = ""; for (int i = 0; i < str_array.length; i++) { rem_spaces += str_array[i] ; } /* * 截取非日期部分字符串 */ String str_array_two[] = rem_spaces.split("\\d"); String non_digital ="" ; for (int i = 0; i < str_array_two.length; i++) { non_digital += str_array_two[i]; } // 获得日期字符串 String str_date = rem_spaces.replaceAll(non_digital, ""); // if(str_date==null || str_date.equals("")||str_date.length() < 7){ return str ; } SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT_1); SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_2); try { Date date = format.parse(str_date); return str.replaceAll(str_date, dateFormat.format(date)); } catch (ParseException e) { return str; } } } "the project is 7899744" 输出 "the project is 7899744" 对于不是日期的数字是不用转换的。 |
|
返回顶楼 | |
发表时间:2008-09-01
又个东西叫正则……
|
|
返回顶楼 | |
发表时间:2008-09-01
jiyanliang 写道 Tceisk9584 写道 package com.ghostdom.util;
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /* * 格式1 20080111 */ private static final String DATE_FORMAT_1 = "yyyyMMdd" ; /* * 格式2 2008-01-11 */ private static final String DATE_FORMAT_2 = "yyyy-MM-dd" ; public String formatDate(String str) { /* * 去除字符串所有空格 */ String str_array[] = str.split("\\s"); String rem_spaces = ""; for (int i = 0; i < str_array.length; i++) { rem_spaces += str_array[i] ; } /* * 截取非日期部分字符串 */ String str_array_two[] = rem_spaces.split("\\d"); String non_digital ="" ; for (int i = 0; i < str_array_two.length; i++) { non_digital += str_array_two[i]; } // 获得日期字符串 String str_date = rem_spaces.replaceAll(non_digital, ""); // if(str_date==null || str_date.equals("")||str_date.length() < 7){ return str ; } SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT_1); SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_2); try { Date date = format.parse(str_date); return str.replaceAll(str_date, dateFormat.format(date)); } catch (ParseException e) { return str; } } } "the project is 7899744" 输出 "the project is 7899744" 对于不是日期的数字是不用转换的。 这样应该就可以了 Date date; SimpleDateFormat a=new SimpleDateFormat("yyyy-MM-dd"); try { date=a.parse("99000"); System.out.println(date.toLocaleString()); } catch (ParseException e) { // TODO Auto-generated catch block System.out.println("88000"); } 虽然出来的localeString 是带分秒的 你可以截取一下就搞定了 - - 也不知道 toLocaleString这个过时的方法你们让不让用 |
|
返回顶楼 | |
发表时间:2008-09-01
# original_string = "today is 20080830" def format_date(original_string) numbers_pattern = /(\d+)/ date_str = numbers_pattern.match(original_string)[0] original_string.sub(numbers_pattern, Date.parse(date_str).to_s(:db)) rescue original_string end |
|
返回顶楼 | |
发表时间:2008-09-01
受教了~~~ 谢谢
|
|
返回顶楼 | |
发表时间:2008-09-01
var str = "today is 20080830" ; var myReg = /(\d{4})(\d{2})(\d{2})/; var newstr = str.replace(myReg, "$1-$2-$3"); alert(newstr); |
|
返回顶楼 | |
发表时间:2008-11-24
可用正则表达式
|
|
返回顶楼 | |
发表时间:2008-11-24
可用正则表达式
|
|
返回顶楼 | |