Mad*_*ech 15 java datetime date
我有这样的字符串2013-10-22T01:37:56
.我需要将此字符串更改为UTC日期格式,如下所示MM/dd/yyyy KK:mm:ss a
.我尝试了一些代码,但它没有返回UTC日期时间.
我的代码是
String[] time = itsAlarmDttm.split("T");
String aFormatDate = time[0]+ " "+time[1];
String aRevisedDate = null;
try {
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
final Date dateObj = sdf.parse(aFormatDate);
aRevisedDate = new SimpleDateFormat("MM/dd/yyyy KK:mm:ss a").format(dateObj);
System.out.println(aRevisedDate);
} catch (ParseException e) {
itsLogger.error("Error occured in Parsing the Data Time Object: " +e.getMessage());
} catch (Exception e) {
itsLogger.error("Error occured in Data Time Objecct: " +e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是MM/dd/yyyy KK:mm:ss a
格式.但不是UTC时间格式.如何解决这个问题?
Bud*_*dha 21
试试这个...为我工作并打印出了10/22/2013 01:37:56 AM
当然这只是你的代码,只需要很少的修改.
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC")); // This line converts the given date into UTC time zone
final java.util.Date dateObj = sdf.parse("2013-10-22T01:37:56");
aRevisedDate = new SimpleDateFormat("MM/dd/yyyy KK:mm:ss a").format(dateObj);
System.out.println(aRevisedDate);
Run Code Online (Sandbox Code Playgroud)
ben*_*n.d 11
尝试使用Z
或z
时区标志格式化日期:
new SimpleDateFormat("MM/dd/yyyy KK:mm:ss a Z").format(dateObj);
Run Code Online (Sandbox Code Playgroud)
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
// or SimpleDateFormat sdf = new SimpleDateFormat( "MM/dd/yyyy KK:mm:ss a Z" );
sdf.setTimeZone( TimeZone.getTimeZone( "UTC" ) );
System.out.println( sdf.format( new Date() ) );
Run Code Online (Sandbox Code Playgroud)
在您的问题中,您没有提到时区。该输入字符串暗示什么时区?您要输出哪个时区?而且,UTC是一个时区(或取决于您的思维方式而定的时区),而不是字符串格式。
您的输入字符串采用ISO 8601格式,但缺少与UTC的偏移量。
这是Joda-Time 2.3中的一些示例代码,向您展示如何处理时区。Joda-Time具有内置的默认格式化程序,用于解析和生成日期时间值的String表示形式。
String input = "2013-10-22T01:37:56";
DateTime dateTimeUtc = new DateTime( input, DateTimeZone.UTC );
DateTime dateTimeMontréal = dateTimeUtc.withZone( DateTimeZone.forID( "America/Montreal" );
String output = dateTimeMontréal.toString();
Run Code Online (Sandbox Code Playgroud)
至于生成其他格式的字符串表示形式,请在StackOverflow中搜索“ Joda格式”。
归档时间: |
|
查看次数: |
93276 次 |
最近记录: |