比较谷歌驱动器上文件的上次修改时间和存储在本地计算机上的文件

时间:2013-12-27 13:15:17

标签: java google-drive-api java.util.date

我正在开发一个应用程序,它将检查来自谷歌驱动器的文件的上次修改时间和本地计算机上文件的上次修改时间,并比较它们,如果发现本地计算机上的文件是最新修改的那么它将会上传或云上的文件将被上传。我上载了下载代码。我有本地文件的最后修改时间以及谷歌驱动器文件的文件,但问题是在调用此函数时从谷歌驱动器返回的日期时间lastModTimeCloudFile = f.getModifiedByMeDate();它返回Google时代的日期时间。现在我想将它转换为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)

我该怎么办?请指出正确的方向。

提前致谢。

2 个答案:

答案 0 :(得分:4)

您的格式化程序中有一个未显示的错误。

你需要解析字符串“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();
}

答案 1 :(得分:0)

格式化程序如何?检查打印的时间格式。它是T和Z的时间戳。谷歌......

OR。

转换为毫秒并使用日历对象