我有一个9位数字的字符串,其中包括以下详细信息:前3位数字代表城市代码,中间3位是银行代码,最后3位是分支代码。
我想使用Java 8或函数式编程从整个字符串中提取这3个,以便随时可以更改实现。
我已经使用了旧的基本结构,使用 String.substring(start,end);
public static void main(String[] args) {
String city = getCityCode("302105202");
System.out.println("City-" + city);
String bank = getBankCode("302105202");
System.out.println("bank-" + bank);
String branch = getBranchCode("302105202");
System.out.println("branch-" + branch);
}
public static String getCityCode(String micr) {
return micr.substring(0, 3);
}
public static String getBankCode(String micr) {
return micr.substring(3, 6);
}
public static String getBranchCode(String micr) {
return micr.substring(6, 9);
}
}
Run Code Online (Sandbox Code Playgroud)
如何在Java 8中获得这些?
提前致谢;
我有一个 ZULU 时间戳,必须将其转换为巴黎时区。
ZULU 2022-11-04T06:10:08.606+00:00 --> Paris 2022-11-04T07:10:08.606+01:00
Run Code Online (Sandbox Code Playgroud)
并且必须注意 DST 例如:夏季时间 +2 小时 冬季时间 +1 小时
我编写了以下代码,该代码在本地按预期工作,但在服务器(巴黎)上部署时未按预期工作。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Locale;
public class ParisTime {
public static void main(String[] args) throws ParseException {
// String date = "2022-05-31T23:30:12.209+00:00";
String date = "2022-11-04T06:10:08.606+00:00";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.ENGLISH);
LocalDateTime dateTime = dateFormat.parse(date).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
ZonedDateTime of = ZonedDateTime.of(dateTime, ZoneId.of("Europe/Paris"));
String hourDiff = of.toString().substring(of.toString().indexOf('+') + 1, of.toString().indexOf('+') + 3);
String zonedDateTime = of.plusHours(Integer.valueOf(hourDiff)).toString();
String newDatetime …Run Code Online (Sandbox Code Playgroud)