我有我的字符串這樣的有效日期:有誰知道如何提取我的日期字符串和更改格式?
String strDate = "Available on 03292013";
我想提取從strDate
字符串日期&將其更改爲Available on 03/05/2015
有誰知道我能做到這一點?
我有我的字符串這樣的有效日期:有誰知道如何提取我的日期字符串和更改格式?
String strDate = "Available on 03292013";
我想提取從strDate
字符串日期&將其更改爲Available on 03/05/2015
有誰知道我能做到這一點?
您可以通過執行以下步驟實現:
[^0-9]
」來提取您的字符串的日期。請在下面的代碼中找到更清晰的實現。
package com.stackoverflow.works;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author sarath_sivan
*/
public class DateFormatHelper {
private static final String DD_MM_YYYY = "MMddyyyy";
private static final String DD_SLASH_MM_SLASH_YYYY = "MM/dd/yyyy";
public static void main(String[] args) {
DateFormatHelper dateFormatHelper = new DateFormatHelper();
dateFormatHelper.run();
}
public void run() {
String strDate = "Available on 03292013";
System.out.println("Input Date: " + strDate);
strDate = DateFormatHelper.getDate(strDate);
strDate = "Available on " + DateFormatHelper.formatDate(strDate);
System.out.println("Formatted Date: " + strDate);
}
public static String formatDate(String strDate) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DD_MM_YYYY);
Date date;
try {
date = simpleDateFormat.parse(strDate);
simpleDateFormat = new SimpleDateFormat(DD_SLASH_MM_SLASH_YYYY);
strDate = simpleDateFormat.format(date);
} catch (ParseException parseException) {
parseException.printStackTrace();
}
return strDate;
}
public static String getDate(String strDate) {
return strDate.replaceAll("[^0-9]", "");
}
}
輸出:
Input Date: Available on 03292013
Formatted Date: Available on 03/29/2013
希望這有助於...
格式不是'ddMMyyyy',它是'MMddyyyy'。見中間的'29'。那不可能是'MM'。 – 2013-03-22 08:29:46
+ 1用於修飾它... – 2013-03-22 08:36:57
非常感謝! – 2013-03-25 13:02:58
試試這個簡單而優雅的方法。
DateFormat dateParser = new SimpleDateFormat("'Available on 'MMddyyyy");
DateFormat dateFormatter = new SimpleDateFormat("'Available on 'dd/MM/yyyy");
String strDate = "Available on 03292013";
Date date = dateParser.parse(strDate);
System.out.println(dateFormatter.format(date));
plz給我一個勾號,如果你認爲我的答案是正確的。 – Drogba 2013-03-22 10:24:41
這應該做你想做的。請注意,我只是在操作String
而沒有考慮它實際包含的內容(在這種情況下是一個日期)。
String strDate = "Available on 03292013";
String newStr = strDate.substring(0, 15) + "/"
+ strDate.substring(15, 17) + "/" + strDate.substring(17);
System.out.println(newStr);
結果:
Available on 03/29/2013
@Adrian:爲whathaveyoutried.com鏈接+1。在發佈可能的答案之前,我應該閱讀它。 (我無法在那裏添加評論。) – Daniel 2013-03-22 08:57:57
@AliShahAhmed我想提及http://www.whathaveyoutried.com在這種情況下。應該有一個SO規則,如果沒有對可能的解決方案至少有一個模糊的概念,就不允許回答問題。 – Adrian 2013-03-22 08:30:08