JAVA 字符串格式化

linuxtoproot 2008-07-14 10:20:19
例如有文本文件111.txt里的内容是
20060603
20070503
20080208

现在要把它格式化成

2006-06-03
2007-05-03
2008-02-08


新手,请多指教,高手帮忙哦~~~~~~
...全文
1087 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
chensq82 2009-09-25
  • 打赏
  • 举报
回复
public static String getDateStr(String inputStr)
{
String outputStr = null;
DateFormat df = new SimpleDateFormat("yyyyMMdd");
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
try
{
Date date = df.parse(inputStr);
outputStr = df2.format(date);
}
catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return outputStr;
}
chensq82 2009-09-25
  • 打赏
  • 举报
回复
public static void main(String [] args)
{
String inputStr = "20090924";
DateFormat df = new SimpleDateFormat("yyyyMMdd");
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
try
{
Date date = df.parse(inputStr);
String outputString = df2.format(date);
System.out.println(outputString);
}
catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
craky 2008-07-14
  • 打赏
  • 举报
回复

public static String formatDateStr(String src)
{
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String ret = "";

try
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(format.parse(src.trim()));
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
ret = year + "-" + (month < 10? "0" + month: month) + "-" + (day < 10? "0" + day: day);
}
catch(ParseException e)
{
e.printStackTrace();
}

return ret;
}
daybybyby 2008-07-14
  • 打赏
  • 举报
回复
晕, 少了个 m.replaceFirst(s)
daybybyby 2008-07-14
  • 打赏
  • 举报
回复

String str =fdsaf2006060743242
Pattern p = Pattern.compile("[1-2][0-9]{3}[0-1][0-9][0-3][0-9]?", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(ss);
while (m.find()) {
String s = m.group();
String y = s.substring(0, 4);
String mon = s.substring(4, 6);
String date = s.substring(6, 8);
s = y + "-" + mon + "-" + date;
}
}
reality 2008-07-14
  • 打赏
  • 举报
回复
String str =20060607
str = str.substring(0,4)+"-"+str.substring(5,6)+"-"+str.substring(7,8)
ZangXT 2008-07-14
  • 打赏
  • 举报
回复
自己读文件,每一条做如下变换:
public class Test{
public static void main(String[] args) {
String str="20080208";
StringBuilder builder=new StringBuilder(str);
builder.insert(4, "-");
builder.insert(7, "-");
str=builder.toString();
System.out.println(str);
}
}
lovingprince 2008-07-14
  • 打赏
  • 举报
回复
这个简单,要么使用日期格式化方法。要么简单一点,直接使用字符串处理。

str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6)
linuxtoproot 2008-07-14
  • 打赏
  • 举报
回复
刚上网,看到这么多回贴,真是太感谢了,小弟第一次发贴求助,感动。。。

再次感谢大家
joejoe1991 2008-07-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 againlove 的回复:]
引用 8 楼 joejoe1991 的回复:
Java codepublicstaticvoidmain(String[] args) {
System.out.println(formatString("20060603"));
System.out.println(formatString("20070503"));
System.out.println(formatString("20080208"));
}publicstaticString formatString(String value) {returnvalue.replaceAll("(? <=[1-9])0(?!0)","-0");
}

如果是20080412,20081101,20081111,

[/Quote]

忘了考虑这种情况了,呵呵,改成下面这样就好。

	public static void main(String[] args) {
System.out.println(formatString("20060603"));
System.out.println(formatString("20071103"));
System.out.println(formatString("20081208"));
System.out.println(formatString("20080108"));

}

public static String formatString(String value) {
return value.replaceAll("(?<=[1-9])([01])(?!0)", "-$1");
}
againlove 2008-07-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 joejoe1991 的回复:]
Java codepublicstaticvoidmain(String[] args) {
System.out.println(formatString("20060603"));
System.out.println(formatString("20070503"));
System.out.println(formatString("20080208"));
}publicstaticString formatString(String value) {returnvalue.replaceAll("(?<=[1-9])0(?!0)","-0");
}
[/Quote]
如果是20080412,20081101,20081111,
returnvalue.replaceAll("(?<=[1-9])0(?!0)","-0"好像就不可以吧??
joejoe1991 2008-07-14
  • 打赏
  • 举报
回复
	public static void main(String[] args) {
System.out.println(formatString("20060603"));
System.out.println(formatString("20070503"));
System.out.println(formatString("20080208"));
}

public static String formatString(String value) {
return value.replaceAll("(?<=[1-9])0(?!0)", "-0");
}

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧