我想将时间戳2011-03-10T11:54:30.207Z转换为10/03/2011 11:54:30.207.我怎样才能做到这一点?我想将ISO8601格式转换为UTC,然后UTC应该是位置感知的.请帮忙
String str_date="2011-03-10T11:54:30.207Z";
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");
date = (Date)formatter.parse(str_date);
System.out.println("output: " +date );
Run Code Online (Sandbox Code Playgroud)
例外:java.text.ParseException:Unparseable date:"2011-03-10T11:54:30.207Z"
Jon*_*eet 31
首先,您需要注意UTC不是一种格式,它是一个有效的时区.因此,"从ISO8601转换为UTC"作为一个概念并不真正有意义.
但是,这是一个使用Joda Time的示例程序,它将文本解析为a DateTime然后格式化它.我已经猜到了你可能想要使用的一种格式 - 你还没有真正提供足够的信息来说明你想要做什么来表达更多.您可能还想考虑时区...是否要在指定时刻显示当地时间?如果是这样,您需要计算用户的时区并进行适当的转换.
import org.joda.time.*;
import org.joda.time.format.*;
public class Test {
public static void main(String[] args) {
String text = "2011-03-10T11:54:30.207Z";
DateTimeFormatter parser = ISODateTimeFormat.dateTime();
DateTime dt = parser.parseDateTime(text);
DateTimeFormatter formatter = DateTimeFormat.mediumDateTime();
System.out.println(formatter.print(dt));
}
}
Run Code Online (Sandbox Code Playgroud)
use*_*966 30
是.你可以像这样使用SimpleDateFormat.
SimpleDateFormat formatter, FORMATTER;
formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String oldDate = "2011-03-10T11:54:30.207Z";
Date date = formatter.parse(oldDate.substring(0, 24));
FORMATTER = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss.SSS");
System.out.println("OldDate-->"+oldDate);
System.out.println("NewDate-->"+FORMATTER.format(date));
Run Code Online (Sandbox Code Playgroud)
输出OldDate - > 2011-03-10T11:54:30.207Z NewDate - > 10-Mar-2011 11:54:30.207
| 归档时间: |
|
| 查看次数: |
106691 次 |
| 最近记录: |