18

我有一个2012-11-21 13:11:25从本地数据库获取的日期字符串。我必须根据UTC设置对其进行转换并将其显示在特定屏幕上。因此,如果GMT+05:30它应该显示2012-11-21 18:41:25在屏幕上。我该如何进行这种转换。我检查了一些问题,但没有解决。

我能够获得一个 Date 对象,该对象Wed Nov 21 13:11:25 GMT+05:30 2012 在此之后返回类似的内容,我需要获取时间18:41:25和日期11-21-2012

提前致谢

4

4 回答 4

22

您的dfinputFmt必须使用相同的格式。

但我认为你应该这样做:

    Date myDate = new Date();

    Calendar calendar = Calendar.getInstance();
    calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
    calendar.setTime(myDate);
    Date time = calendar.getTime();
    SimpleDateFormat outputFmt = new SimpleDateFormat("MMM dd, yyy h:mm a zz");
    String dateAsString = outputFmt.format(time);
    System.out.println(dateAsString);
于 2012-11-20T12:21:07.490 回答
20

从当前时间获取 UTC:

public String getCurrentUTC(){
        Date time = Calendar.getInstance().getTime();
        SimpleDateFormat outputFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        outputFmt.setTimeZone(TimeZone.getTimeZone("UTC"));
        return outputFmt.format(time);
}
于 2017-06-13T12:06:18.480 回答
4

以所需格式获取格式化日期字符串的最佳方法是

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String formatted = dateFormat.format(date);
于 2017-02-24T11:50:16.593 回答
0
    //This is my input date 

    String dtStart = "2019-04-24 01:22 PM";
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
    Date date = null;
    try {
        date = format.parse(dtStart);
        getDateInUTC(date)

    } catch (ParseException e) {
        e.printStackTrace();
    }

//此方法用于将日期转换为某种UTC格式

public static String getDateInUTC(Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
            String dateAsString = sdf.format(date);
            System.out.println("UTC" + dateAsString);
            return dateAsString;

        }
于 2019-04-29T09:54:26.917 回答