Java 以特定格式将UTC日期字符串转换为本地日期字符串
我有一个UTC日期字符串Java 以特定格式将UTC日期字符串转换为本地日期字符串,java,datetime,jodatime,Java,Datetime,Jodatime,我有一个UTC日期字符串 String utcDate = "2014-03-05 07:09:07.0"; 我想将其转换为格式为DD-MMM-YYYY hh:mm a 例如:2014年3月5日下午12:39自UTC日期2014-03-05 07:09:07.0 如何使用简单的java或joda API实现这一点,使用默认功能很容易实现。我希望本地数据仅用于显示 SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd HH:mm:s
String utcDate = "2014-03-05 07:09:07.0";
我想将其转换为格式为DD-MMM-YYYY hh:mm a
例如:2014年3月5日下午12:39
自UTC日期2014-03-05 07:09:07.0
如何使用简单的java或joda API实现这一点,使用默认功能很容易实现。我希望本地数据仅用于显示
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
parser.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parsed = parser.parse(utcDate);
SimpleDateFormat formatter = new SimpleDateFormat("d-MMM-yyyy hh:mm a");
System.out.println(formatter.format(parsed));
使用默认功能很容易实现。我希望本地数据仅用于显示
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
parser.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parsed = parser.parse(utcDate);
SimpleDateFormat formatter = new SimpleDateFormat("d-MMM-yyyy hh:mm a");
System.out.println(formatter.format(parsed));
下面的代码将帮助您将UTC转换为IST或任何其他时区。您需要注意希望与SimpleDataFormat一起使用的时区
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class ConvertTimeZone {
public static void main(String args[]) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = sdf.parse("2014-03-05 07:09:07");
System.out.println("time in UTC " +sdf.format(date));
sdf.setTimeZone(TimeZone.getTimeZone("IST"));
System.out.println("Time in IST is " + sdf.format(date));
}
}
下面的代码将帮助您将UTC转换为IST或任何其他时区。您需要注意希望与SimpleDataFormat一起使用的时区
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class ConvertTimeZone {
public static void main(String args[]) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = sdf.parse("2014-03-05 07:09:07");
System.out.println("time in UTC " +sdf.format(date));
sdf.setTimeZone(TimeZone.getTimeZone("IST"));
System.out.println("Time in IST is " + sdf.format(date));
}
}
众所周知,java.util.Date和.Calendar类非常麻烦。避开它们。相反,请使用library或与捆绑的new in 如果使用字符串格式,则可以将字符串直接传递给Joda时间构造函数。输入字符串接近,但中间的空间应该是<代码> T < /代码> .< 一些使用Joda Time 2.3库的示例代码
String input = "2014-03-05 07:09:07.0";
String inputModified = input.replace( " ", "T" );
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime dateTimeUtc = new DateTime( inputModified, DateTimeZone.UTC );
DateTime dateTimeParis = dateTimeUTC.toZone( timeZone );
String outputFrance = DateTimeFormat.forPattern( "FF" ).withLocale(Locale.FRANCE).print( dateTimeParis );
DateTimeFormatter formatter = DateTimeFormat.forPattern( "d-MMM-yyyy hh:mm a" ).withLocale( Locale.US );
String outputParisCustom = formatter.print( dateTimeParis );
众所周知,java.util.Date和.Calendar类非常麻烦。避开它们。相反,请使用library或与捆绑的new in 如果使用字符串格式,则可以将字符串直接传递给Joda时间构造函数。输入字符串接近,但中间的空间应该是<代码> T < /代码> .< 一些使用Joda Time 2.3库的示例代码
String input = "2014-03-05 07:09:07.0";
String inputModified = input.replace( " ", "T" );
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime dateTimeUtc = new DateTime( inputModified, DateTimeZone.UTC );
DateTime dateTimeParis = dateTimeUTC.toZone( timeZone );
String outputFrance = DateTimeFormat.forPattern( "FF" ).withLocale(Locale.FRANCE).print( dateTimeParis );
DateTimeFormatter formatter = DateTimeFormat.forPattern( "d-MMM-yyyy hh:mm a" ).withLocale( Locale.US );
String outputParisCustom = formatter.print( dateTimeParis );