按照UTC格式转换日期和时间字符串

19
我有一个日期字符串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
提前致谢。

你可以查看这个链接:转换希望这能帮到你。 - kittu88
4个回答

23

从当前时间获取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);
}

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);

4

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

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String formatted = dateFormat.format(date);

为什么这个答案比之前的更好? - TinaFrieda

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;

        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接