Java / Android-将GMT时间字符串转换为本地时间

好的,所以我有一个字符串,说“ Tue May 21 14:32:00 GMT

2012”,我想将此字符串转换为本地时间,格式为2012年5月21日下午2:32。我尝试了SimpleDateFormat(“ MM dd,yyyy

hh:mm a”)。parse(),但它引发了异常。所以我该怎么做?

异常为“未报告的异常java.text.ParseException;必须捕获或声明为抛出”。

在行中 Date date = inputFormat.parse(inputText);

我在TextMate上运行的代码:

public class test{

public static void main(String arg[]) {

String inputText = "Tue May 22 14:52:00 GMT 2012";

SimpleDateFormat inputFormat = new SimpleDateFormat(

"EEE MMM dd HH:mm:ss 'GMT' yyyy", Locale.US);

inputFormat.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));

SimpleDateFormat out = new SimpleDateFormat("MMM dd, yyyy h:mm a");

Date date = inputFormat.parse(inputText);

String output = out.format(date);

System.out.println(output);

}

}

回答:

您提供的用于 解析 的格式字符串与您实际获得的文本格式不匹配。您需要先解析,然后再格式化。看起来像您想要的:

SimpleDateFormat inputFormat = new SimpleDateFormat(

"EEE MMM dd HH:mm:ss 'GMT' yyyy", Locale.US);

inputFormat.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));

SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd, yyyy h:mm a");

// Adjust locale and zone appropriately

Date date = inputFormat.parse(inputText);

String outputText = outputFormat.format(date);

编辑:这是简短但完整的程序形式的相同代码,并带有您的示例输入:

import java.util.*;

import java.text.*;

public class Test {

public static void main(String[] args) throws ParseException {

String inputText = "Tue May 21 14:32:00 GMT 2012";

SimpleDateFormat inputFormat = new SimpleDateFormat

("EEE MMM dd HH:mm:ss 'GMT' yyyy", Locale.US);

inputFormat.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));

SimpleDateFormat outputFormat =

new SimpleDateFormat("MMM dd, yyyy h:mm a");

// Adjust locale and zone appropriately

Date date = inputFormat.parse(inputText);

String outputText = outputFormat.format(date);

System.out.println(outputText);

}

}

您可以编译并运行 该确切代码 吗?

以上是 Java / Android-将GMT时间字符串转换为本地时间 的全部内容, 来源链接: utcz.com/qa/411060.html

回到顶部