如何在 Java 中查找和更新嵌入字符串的属性
How to find and update properties embedded in a String in Java
我正在尝试查找和更新字符串的值。该字符串是客户端发送的重复规则,我需要获取直到 属性 并为其添加时间。 (Ps setTime/setHour... 被贬低)
我有的是:
import java.util.Calendar;
public class TestReplaceString {
/**
* @param args
*/
public static void main(final String[] args) {
String originalRecurrenceRule = "FREQ=WEEKLY;INTERVAL=1;BYDAY=FR;WKST=MO;UNTIL=20160731T223030Z;";
System.out.println("Unformated: " + originalRecurrenceRule);
System.out.println("Formated: " + originalRecurrenceRule.replaceAll("UNTIL.*?Z", "UNTIL=" + "sameDateAsPassedByTheCLient" + "T235959Z;"));
}
这个问题是我需要保留客户提供的日期并且只添加时间例如
日期 20170101T220000Z 将变为 20170101T235959Z
我试图完成的是类似于验证器的东西,从字符串中获取 属性 UNTIL 并更改它。
欢迎提出任何建议。
亲切的问候
这样的可能更合适:
String originalRecurrenceRule = "FREQ=WEEKLY;INTERVAL=1;BYDAY=FR;WKST=MO;UNTIL=20160731T223030Z;";
String until = originalRecurrenceRule.substring(originalRecurrenceRule.indexOf("UNTIL"), originalRecurrenceRule.indexOf(";", originalRecurrenceRule.indexOf("UNTIL")));
SimpleDateFormat sdf = new SimpleDateFormat();
Date date = sdf.parse(until.substring(until.indexOf("=") + 1),until.length() - 1);
date.setTime(timeInMilliseconds);
originalRecurrenceRule.replace(until, "UNTIL="+ date.toString() + ";");
我正在尝试查找和更新字符串的值。该字符串是客户端发送的重复规则,我需要获取直到 属性 并为其添加时间。 (Ps setTime/setHour... 被贬低)
我有的是:
import java.util.Calendar;
public class TestReplaceString {
/**
* @param args
*/
public static void main(final String[] args) {
String originalRecurrenceRule = "FREQ=WEEKLY;INTERVAL=1;BYDAY=FR;WKST=MO;UNTIL=20160731T223030Z;";
System.out.println("Unformated: " + originalRecurrenceRule);
System.out.println("Formated: " + originalRecurrenceRule.replaceAll("UNTIL.*?Z", "UNTIL=" + "sameDateAsPassedByTheCLient" + "T235959Z;"));
}
这个问题是我需要保留客户提供的日期并且只添加时间例如
日期 20170101T220000Z 将变为 20170101T235959Z
我试图完成的是类似于验证器的东西,从字符串中获取 属性 UNTIL 并更改它。 欢迎提出任何建议。
亲切的问候
这样的可能更合适:
String originalRecurrenceRule = "FREQ=WEEKLY;INTERVAL=1;BYDAY=FR;WKST=MO;UNTIL=20160731T223030Z;";
String until = originalRecurrenceRule.substring(originalRecurrenceRule.indexOf("UNTIL"), originalRecurrenceRule.indexOf(";", originalRecurrenceRule.indexOf("UNTIL")));
SimpleDateFormat sdf = new SimpleDateFormat();
Date date = sdf.parse(until.substring(until.indexOf("=") + 1),until.length() - 1);
date.setTime(timeInMilliseconds);
originalRecurrenceRule.replace(until, "UNTIL="+ date.toString() + ";");