因此,从我发现的东西我将不得不写一个交换方法?唯一的问题是,我一直在查看的代码有点凌驾于我的头上。如何分割字符串值并重新排列字符
我从一个xml文件中获取一个值,例如“20120411”我想将它传递给另一个字符串的是2012年4月11日或至少2012年4月11日。我已经找到了简单的方法来处理除了java之外的其他所有语言。如果它足够简单让某人向我展示代码来完成此操作,或者指向正确的方向,我将不胜感激!
因此,从我发现的东西我将不得不写一个交换方法?唯一的问题是,我一直在查看的代码有点凌驾于我的头上。如何分割字符串值并重新排列字符
我从一个xml文件中获取一个值,例如“20120411”我想将它传递给另一个字符串的是2012年4月11日或至少2012年4月11日。我已经找到了简单的方法来处理除了java之外的其他所有语言。如果它足够简单让某人向我展示代码来完成此操作,或者指向正确的方向,我将不胜感激!
看看使用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();
}
}
}
感谢您检查出来 – IceSteve
为了快速的结果,这将是一段路要走。请记住'SimpleDateFormat'不是线程安全的。 –
的确如此。例如,请看[Java Tutorial中的此链接](http://download.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html)。里面有一个简单易懂的关于如何使用SimpleDateFormat类的例子。 –
这需要 “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, "/");
如果你想这样做,重新安排字符,你可以做一个替代:
String dateString = "20120411".replaceAll("\\d{2}(\\d{2})(\\d{2})(\\d{2})", "$2/$3/$1"); // outputs: 04/11/12
你会发现你在java.lang和文本包所需要的一切。现在请自己做作业代码..老虎! – RHT
感谢您的参考 – IceSteve