2011-09-23 69 views
1

因此,从我发现的东西我将不得不写一个交换方法?唯一的问题是,我一直在查看的代码有点凌驾于我的头上。如何分割字符串值并重新排列字符

我从一个xml文件中获取一个值,例如“20120411”我想将它传递给另一个字符串的是2012年4月11日或至少2012年4月11日。我已经找到了简单的方法来处理除了java之外的其他所有语言。如果它足够简单让某人向我展示代码来完成此操作,或者指向正确的方向,我将不胜感激!

+0

你会发现你在java.lang和文本包所需要的一切。现在请自己做作业代码..老虎! – RHT

+0

感谢您的参考 – IceSteve

回答

4

看看使用SimpleDateFormat对象。在这个论坛中有很多很多关于如何使用它的例子,所以一点点搜索会给你带来财富。如果你仔细观察,仍然陷入困境,那么你应该考虑向我们展示你的尝试,并告诉我们什么不适合你,我们很可能会很轻松地帮助你。

格式字符串尝试包括“yyyyMMdd”。您将使用此String构造您的SDF对象,解析xml字符串并将其转换为Date对象。您将使用第二个具有不同模式字符串的SDF对象,可能是“MMMM dd,yyyy”将日期格式化为不同的字符串。再次,试试吧!

例如,

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class SdfTest { 
    public static void main(String[] args) { 
     SimpleDateFormat sdfInput = new SimpleDateFormat("yyyyMMdd"); 
     SimpleDateFormat sdfOutput = new SimpleDateFormat("MMMM dd, yyyy"); 

     try { 
     Date date = sdfInput.parse("20120411"); 
     String output = sdfOutput.format(date); 
     System.out.println(output); 

     } catch (ParseException e) { 
     e.printStackTrace(); 
     } 
    } 
} 
+0

感谢您检查出来 – IceSteve

+0

为了快速的结果,这将是一段路要走。请记住'SimpleDateFormat'不是线程安全的。 –

+0

的确如此。例如,请看[Java Tutorial中的此链接](http://download.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html)。里面有一个简单易懂的关于如何使用SimpleDateFormat类的例子。 –

1

这需要 “20080105”,并返回 “01/05/2008”。

StringBuffer b = new StringBuffer(dateStr); 
b.append(b.substring(0, 4)).delete(0, 4); // put year at end 
b.insert(2, "/"); 
b.insert(5, "/"); 
1

如果你想这样做,重新安排字符,你可以做一个替代:

String dateString = "20120411".replaceAll("\\d{2}(\\d{2})(\\d{2})(\\d{2})", "$2/$3/$1"); // outputs: 04/11/12