我想安全地做日期和时间,所以我按照几条SO建议说使用DateTimeFormatter
,所以我粘贴了3行:
LocalDate date = LocalDate.now();
String text = date.format(formatter);
LocalDate parsedDate = LocalDate.parse(text, formatter);
毫不奇怪,我得到Cannot resolve symbol...
几乎所有东西。去过也做过。将光标放在错误例程上并点击Alt+Enter
,将生成正确的import
。
但这没有发生。
所以我在另一个示例代码片段中插入了这两行:
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
Error: `Cannot resolve symbol LocalTime` and `DateTimeFormatter`
我的问题是:我该怎么做才能解决导致错误的符号。
我会继续。我提交的内容更多,因为通常在我打算提交问题时,我会在解释我打算提交的内容时弄清楚自己的答案。
不是这个时候。
(为什么我有
C:\Users\Dov\AppData\Local\Android\sdk
和
C:\Users\Dov\AppData\Local\Android\sdk1
?
我为SDK管理器选择的并不重要。它说两者都是最新的。
{我知道这会令人尴尬。我这样做太久了(也许我应该停在这里)因为这会让我退缩。 }
我已查看Use embedded jdk
。
我看着我能想到的每一个场景。
我用Google搜索了错误信息。
我已完成Clean
(无错误)和Build
。
import static...
一无所获。
我正在使用Java 8, version 51, Android Studio 2.3.3, gradle-3.3
Gradle控制台说:
C:\Users\Dov\Google Drive\AndroidStudioProjects\WordyHelperton - Copy - Copy
\app\src\main\java\com\dslomer64\servyhelperton\Utilities.
java:9: error: package java.time.format does not exist
和
C:\Users\Dov\Google Drive\AndroidStudioProjects\WordyHelperton - Copy - Copy
\app\src\main\java\com\dslomer64\servyhelperton\Utilities.
java:321: error: cannot find symbol
我有这个:
而且:
package java.time.format;
public final class DateTimeFormatter {
private final java.time.format.DateTimeFormatterBuilder.CompositePrinterParser printerParser;
private final java.util.Locale locale;
private final java.time.format.DecimalStyle decimalStyle;
private final java.time.format.ResolverStyle resolverStyle;
private final java.util.Set<java.time.temporal.TemporalField> resolverFields;
private final java.time.chrono.Chronology chrono;
private final java.time.ZoneId zone;
public static final java.time.format.DateTimeFormatter ISO_LOCAL_DATE;
...
答案 0 :(得分:1)
使用Android时,您使用的是Android SDK,而不是直接使用JDK。并且支持API级别26中添加的Android SDK LocalTime和DateTimeFormatter。
即使您尝试直接通过JDK8访问这些内容,截至2017年9月8日,Android Studio尚未支持所有Java 8功能。即使使用即将推出的3.0预览版1,您也只能获得对Java 8 API的支持以及minsdkversion依赖性限制的支持,如下所示。
来源:Supported Java 8 Language Features and APIs
因此,由于尚未提及java.time.*
API,尝试通过JDK8导入它不会像Android Studio 3.0 Preview 1那样起作用。
答案 1 :(得分:0)
LocalTime和LocalDate是java 1.8的新增功能。看起来你正在使用1.7或更早版本。您需要将JDK更新为java 1.8