Kyl*_*oon 11 java timezone date date-format
假设我有一个字符串代表一个如下所示的日期:
"格林威治标准时间2008年7月17日17:08:48 GMT"
所以我将该字符串解析为这样的日期对象:
DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZ yyyy");
Date fromDate = (Date)formatter.parse(fromDateString);
Run Code Online (Sandbox Code Playgroud)
这给了我正确的日期对象.现在我想将此日期显示为CDT值.
我尝试了很多东西,但我无法让它正常工作.必须有一个使用DateFormat类的简单方法才能使其工作.有什么建议?我最后一次尝试是这样的:
formatter.setTimeZone(toTimeZone);
String result = formatter.format(fromDate);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 18
使用"zzz"代替"ZZZ":"Z"是RFC822时区的符号.
DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
Run Code Online (Sandbox Code Playgroud)
话虽如此,我对日期/时间的标准建议是使用Joda Time,这是一个更好的API.
编辑:短但完整的程序:
import java.text.*;
import java.util.*;
public class Test
{
public List<String> names;
public static void main(String [] args)
throws Exception // Just for simplicity!
{
String fromDateString = "Wed Jul 08 17:08:48 GMT 2009";
DateFormat formatter = new SimpleDateFormat
("EEE MMM dd HH:mm:ss zzz yyyy");
Date fromDate = (Date)formatter.parse(fromDateString);
TimeZone central = TimeZone.getTimeZone("America/Chicago");
formatter.setTimeZone(central);
System.out.println(formatter.format(fromDate));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:2008年7月8日星期三12:08:48 CDT 2009
| 归档时间: |
|
| 查看次数: |
26255 次 |
| 最近记录: |