Java 如何在android中使用GMT获取当前日期?

Java 如何在android中使用GMT获取当前日期?,java,android,gmt,Java,Android,Gmt,我希望当前日期在格林威治标准时间时区。我使用了以下代码 public static Date getGMTDate(String dateFormat) throws ParseException { SimpleDateFormat dateFormatGmt = new SimpleDateFormat(dateFormat); dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));

我希望当前日期在格林威治标准时间时区。我使用了以下代码

 public static Date getGMTDate(String dateFormat) throws ParseException
   {
        SimpleDateFormat dateFormatGmt = new SimpleDateFormat(dateFormat);
        dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));

        // Local time zone
        SimpleDateFormat dateFormatLocal = new SimpleDateFormat(dateFormat);

        // Time in GMT
        return dateFormatLocal.parse(dateFormatGmt.format(new Date()));
   }
//调用上面的函数

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = getGMTDate("yyyy-MM-dd HH:mm:ss");
当我更改设备日期时,时间以GMT格式显示,但日期不以GMT时区显示。它显示设备日期。 但是我想要当前的格林尼治标准时间。

这可能有效

        SimpleDateFormat dateFormatGmt = new SimpleDateFormat("dd:MM:yyyy HH:mm:ss");
        dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println(dateFormatGmt.format(new Date())+"");
指定格式,您将在GMT中获得它


编辑:您也可以检查

我更改了您的方法,如下所示

public static String getGMTDate() {
    DateFormat dateFmt = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.MEDIUM, SimpleDateFormat.MEDIUM);
    dateFmt.setTimeZone(TimeZone.getTimeZone("GMT"));

    // Time in GMT
    return dateFmt.format(new Date());
}
我相信,接下来的日期和你想要的是一样的

07-18 10:41:54.525: D/test(6996): GMT Date is: **Jul 18, 2013 10:41:03 AM**
所以只要调用这个方法,它就会以字符串格式返回GMT日期

编辑1:

您正在设置GMT时区,而不是GMT日期。您没有试图理解您的代码。当您调用新数据时,它返回设备日期,然后您将其格式化为相应的GMT日期和时间。因此,如果您将设备日期更改为7月16日,那么您的代码甚至我的代码将返回7月16日的GMT等效时间。如果您想要格林尼治标准时间7月18日,即使您的设备的日期是2000年7月16日,那么我认为如果您不从某个网络实体处获得它,您也无法做到这一点

编辑2:

你应该考虑类似的问题,它可能会对你有好处

输出:2016-08-01 14:37:48 UTC


工作正常。

但您的代码仅显示GMT当前时间。我需要当前GMT日期。如果您现在正在尝试,GMT日期将与您的本地日期相同。我在这里遗漏了什么吗?当前格林尼治标准时间是2013年7月18日上午9:40。我想在我的android设备上安装这个。另外,我想知道为什么你需要这么多SimpleDataFormat实例来查看这个类似的问题,。请更改您的android设备日期,然后调用上述方法。在android设备中更改日期后是否会获得相同的输出?请检查并给出一些解决方案。此方法仅以GMT显示时间。如果更改设备日期,您将如何获得2013年7月18日?new Date返回设备本身的日期。它不是从网络获取的。但我想要当前的GMT日期。在我的应用程序中,我使用的是GMT日期。我没有使用设备日期。请说明如何在android中查找GMT当前日期?我已编辑了我的答案,以包括另一个SO线程,该线程正在尝试执行相同的操作。你应该看看这个,然后试着用它来达到你的目的。除此之外,目前我没有其他建议。
    final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
    dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));