小编Jes*_*ang的帖子

Java 8 DateTimeFormatter两位数18年解析为0018而不是2018年?

使用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位数年份的例外情况.

date-format date-parsing java-8 java-time

9
推荐指数
1
解决办法
4053
查看次数

java (log4j) 按对象类型记录过滤器

我有一个当前用 log4j 实现的日志语句:

log.info("Failed to create message for {}", CustomerData);
Run Code Online (Sandbox Code Playgroud)

这会将一些敏感数据记录在CustomerData.

有没有办法阻止记录 的任何实例CustomerData?也许在 log4j 配置中或通过自定义过滤器?

如果 log4j 无法实现,那么其他日志框架呢?

java logging log4j filter

3
推荐指数
1
解决办法
2682
查看次数

如何替换“?从字符串中的右双引号生成?

我有“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 string

2
推荐指数
1
解决办法
3924
查看次数

标签 统计

java ×2

date-format ×1

date-parsing ×1

filter ×1

java-8 ×1

java-time ×1

log4j ×1

logging ×1

string ×1