0

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

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

提前致谢。

4

2 回答 2

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();
}
于 2013-12-27T13:37:00.377 回答
0

你的格式化程序是什么样子的?检查打印的时间格式。它是带有 T 和 Z 的时间戳。谷歌它......

或者。

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

于 2013-12-27T13:23:32.257 回答