使用Java 8,下面的代码将"18"解析为年"0018"而不是"2018".
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M/d/y");
return LocalDate.parse(date, formatter);
Run Code Online (Sandbox Code Playgroud)
输入日期为"01/05/18".
1)为什么结果是"0018"?难道DateTimeFormatter没有按照80-20规则?
2)如何控制SimpleDateFormat解析为19xx或20xx?谈到SimpleDateFormat.set2DigitYearStart(Date)可以用来修复这一年.有没有类似的东西DateTimeFormatter?
我希望"M/d/y"能解析2到4位数年份.
"M/d/yy"抛出4位数的异常并将"01/05/97"解析为"2097-01-05".理想情况下,这应解析为"1997-01-05".
"M/d/yyyy"抛出2位数年份的例外情况.
我有一个当前用 log4j 实现的日志语句:
log.info("Failed to create message for {}", CustomerData);
Run Code Online (Sandbox Code Playgroud)
这会将一些敏感数据记录在CustomerData.
有没有办法阻止记录 的任何实例CustomerData?也许在 log4j 配置中或通过自定义过滤器?
如果 log4j 无法实现,那么其他日志框架呢?
我有“excused”一个文本文件。我用 java'sBufferReader.readLine()把它读成一个 String s,s 变成了“excusedâ€?.
我用过s = s.replace("“","&ldquo");,它做了更换。
然而s = s.replace("â€?","&rdquo");并没有进行更换。
我在我的主要方法中测试了以下几行:
String t = "� test";
System.out.println(t);
t = t. replace("�","&rdquo");
System.out.println(t);
Run Code Online (Sandbox Code Playgroud)
这确实将 t 变成了&rdquo test,为什么对replace()从文本文件中读入的字符串不起作用?谢谢,
java ×2
date-format ×1
date-parsing ×1
filter ×1
java-8 ×1
java-time ×1
log4j ×1
logging ×1
string ×1