所以我发现我必须写一个交换方法?唯一的问题是我一直在看的代码有点超过我的头脑。
我从xml文件中获取一个值,例如“20120411”我希望它一旦传递到另一个字符串是2012年4月11日,或至少是04/11/12。除了java之外,我已经找到了几乎所有其他语言的简单方法。如果它足够简单,可以让某人向我展示完成此任务的代码,或者指出我正确的方向,我将不胜感激!
答案 0 :(得分:5)
查看使用SimpleDateFormat对象。在这个论坛中有很多如何使用它的例子,所以一点点搜索会给你带来财富。如果你看一遍并且仍然卡住,那么你应该考虑向我们展示你的尝试并告诉我们什么对你不起作用,我们很可能能够轻松地帮助你。
要尝试的格式字符串包括“yyyyMMdd”。您将使用此String构造SDF对象,解析xml String,从而将其转换为Date对象。您将使用具有不同模式String的第二个SDF对象(可能是“MMMM dd,yyyy”)将Date格式化为不同的String。再来一次,试一试!
如,
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();
}
}
}
答案 1 :(得分: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, "/");
答案 2 :(得分:1)
如果您只想重新排列字符,则可以进行替换:
String dateString = "20120411".replaceAll("\\d{2}(\\d{2})(\\d{2})(\\d{2})", "$2/$3/$1"); // outputs: 04/11/12