[英]Replace substring in a particular postion
String date = "2012-11-28 12:30:30";
我想通過使用String.replace
方法將日期替換為2012-11-28 12:00:00
:
String replacedDate = date.replace(date.substring(14, 19), "00:00");
它工作正常,但如果日期是:
String date = "2012-11-28 18:18:18";
使用上面的方法,結果將是2012-11-28 00:00:28
但我希望輸出為2012-11-28 18:00:00
。
您不需要在此處使用String.replace
方法。 如果您知道要替換的確切索引,並且您確定它們將始終相同,那么您可以使用子字符串和字符串連接:
String date = "2012-11-28 12:30:30";
date = date.substring(0, 14) + "00:00";
看到它在線工作: ideone
注意:如果您的字符串確實表示日期,請考慮使用Date
類型的變量而不是String
。
您可以使用忽略分鍾和秒的Date解析器,而不是直接操作字符串:
String s = "2012-11-28 12:30:30";
//skip the minutes, seconds
Date date = new SimpleDateFormat("yyyy-MM-dd HH").parse(s);
String result = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
System.out.println("result = " + result);
獎勵:如果日期不是預期的格式,您將獲得有用的例外
這是一個約會/時間。 通過解析上述入合適的日期/時間對象並使用的日期/時間相關的方法操縱它把它作為這樣 。 這樣您就不必依賴substrig / regexp等,也不會冒着創建無效日期/時間參考的風險。
例如,使用SimpleDateFormat和Calendar ,或使用Joda-Time獲得更直觀,更健壯的API。
目前,您有一個字符串式系統,而不是強類型系統。
您也可以先要求第一個':'然后添加“00:00”
String date="2012-11-28 18:18:18";
int i = date.indexOf(':');
String format = date.substring(0,i+1) + "00:00";
我認為你的解決方案不起作用,因為replace方法有這個簽名
public String replace(char oldChar, char newChar)
不
public String replace(String oldChar, String newChar)
這個答案是為了解問題,解決問題,考慮其他好的答案!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.