小编Dav*_*vid的帖子

如何使用Java 8 DateTimeFormatter更改解析两个字母年份的基准日期?

如果我使用类似于d/M/yy创建Java 8 DateTimeFormatter的模式(例如使用DateTimeFormatter.ofPattern(pattern);(我将仅用于解析,而不是格式化),它将所有两个字母的年份解释为20xx,例如解析一个字符串,如同13/5/99被解释为2099-05-13,在我的情况下是错误的(它应该是在1999年).

在我的应用程序中,我试图解析OCR'd文档中的日期,例如仍然可以从90年代开始,所以使用旧的SimpleDateFormat行为将日期解释为在当前日期之前和之后的20年之内我很好.但由于各种原因,我仍然希望将整个日期解析逻辑切换到新的Java 8 DateTimeFormatters.

通过Java源代码,我看到这都是相对于常量解释的ReducedPrinterParser.BASE_DATE,但我认为无法更改从模式构建自己的格式化程序时使用的值.这是不可能的,还是我错过了指定解析两个字母年份的行为的可能性?

java parsing date 2-digit-year java-time

10
推荐指数
1
解决办法
1122
查看次数

是否可以使用TextStyle.SHORT和TextStyle.FULL解析月份的日期?

DateTimeFormatter从类似模式创建的Java 8 d. MMM u只能用TextStyle.SHORT定义的样式解析日期(例如13. Feb 2015),从中创建的DateTimeFormatter d. MMMM u只能用TextStyle.FULL定义的样式解析日期(例如13. February 2015).

在"旧的"SimpleDateFormat中,"MMM"和"MMMM"之间的区别仅对格式化很重要,而不是解析,因此很容易创建一个理解月份名称的FULL和SHORT形式的解析器.

是否可以创建一个也可以执行此操作的Java 8 DateTimeFormatter?或者我是否总是要创建两个解析器,一个使用FULL,另一个使用SHORT模式?

java parsing date java-8 java-time

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

Google OAuth 2.0增量授权无效

我有一个需要访问Google API组合的服务器端应用程序,对于我们应用程序的某些用户,我们只需要访问一个API /范围组(例如Google Drive),其他用户访问另一个API /范围(比如说) G +),对于一些我们需要访问两者(用户可以在以后链接到应用程序的其他部分).

我们想为此使用增量授权,但是当我们第一次请求访问一组范围,然后请求访问另一组范围时,我们为第二个请求获取的访问令牌只允许访问第二个范围,而不是最初请求的范围和新范围的组合,如上面给出的Google链接中所述.

我们所有的授权网址都包含include_granted_scopes=true参数.

我们还需要做一些额外的步骤才能启用增量身份验证吗?我们在服务器端应用程序中使用Google oauth Java客户端库,如果这有任何区别的话.

这个问题描述了一个类似的问题,但对于已安装的应用程序,它包含一个很好的简单脚本来重现问题.

oauth google-api oauth-2.0 google-oauth google-oauth-java-client

5
推荐指数
1
解决办法
854
查看次数