我正在开发一个应用程序,它将检查谷歌驱动器中文件的上次修改时间和本地计算机上文件的上次修改时间,并进行比较,如果发现本地计算机上的文件是最新修改的,那么它将被上传,否则将从云端上传文件。我有上传下载代码。我有本地文件和谷歌驱动器文件的上次修改时间的文件,但问题是调用此函数时从谷歌驱动器返回的 DateTime lastModTimeCloudFile = f.getModifiedByMeDate();
它返回DateTime是Google api的。现在我想将其转换为 java.util.Date 格式我该怎么做。请各位专家帮帮我。
这是我尝试过的。
for (File f : result) {
String ext = null;
fileName = f.getTitle();
if (fileName.equals("IDPWD")) {
nFlagIfFile = 1;
lastModTimeLocalFile = new Date(dbFile.lastModified());
localModTime = formatter.format(lastModTimeLocalFile);
java.util.Date date ;
lastModTimeCloudFile = f.getModifiedByMeDate();
try {
date = formatter.parse(lastModTimeCloudFile.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这会产生错误
java.text.ParseException: Unparseable date: "2013-12-27T11:15:10.382Z"
at java.text.DateFormat.parse(Unknown Source)
at GetNewFile.main(GetNewFile.java:89)
我该怎么办呢。请指出我正确的方向。
提前致谢。
最佳答案
您的格式化程序中存在您未显示的错误。
您需要解析字符串“2013-12-27T11:15:10.382Z”,这是一个很好的例子:
https://stackoverflow.com/a/8405125/3115739
试试这个代码:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateString = "2013-12-27T11:15:10.382Z";
try {
Date date = format.parse(dateString);
System.out.println(date);
}
catch (Exception e) {
e.printStackTrace();
}
关于java - 比较谷歌驱动器上的文件和本地计算机上存储的文件的上次修改时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20801398/