因此,從我發現的東西我將不得不寫一個交換方法?唯一的問題是,我一直在查看的代碼有點凌駕於我的頭上。如何分割字符串值並重新排列字符
我從一個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