这是我的代码。
public String getDateTime()
{
String dateAndTime =
(new SimpleDateFormat("hh:mm aaa")).format(new Date());
return dateAndTime;
}
public String getDate()
{
android.text.format.DateFormat df = new android.text.format.DateFormat();
String Date = df.format("MM-dd-yyyy", new java.util.Date()).toString();
return Date;
}
我搜索过这个。但是,我找不到完美的答案。请帮帮我。
答案 0 :(得分:4)
您可以使用以下功能
private Date shiftTimeZone(Date date, TimeZone sourceTimeZone, TimeZone targetTimeZone) {
Calendar sourceCalendar = Calendar.getInstance();
sourceCalendar.setTime(date);
sourceCalendar.setTimeZone(sourceTimeZone);
Calendar targetCalendar = Calendar.getInstance();
for (int field : new int[] {Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH, Calendar.HOUR, Calendar.MINUTE, Calendar.SECOND, Calendar.MILLISECOND}) {
targetCalendar.set(field, sourceCalendar.get(field));
}
targetCalendar.setTimeZone(targetTimeZone);
System.out.println("........"+targetCalendar.getTimeZone());
return targetCalendar.getTime();
}
用法:
Date date= new Date();
SimpleDateFormat sf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
sf.format(date);
TimeZone tz = TimeZone.getTimeZone("GMT") OR TimeZone tz = sf.getTimeZone();
TimeZone tz1 = TimeZone.getTimeZone("EST");
Date c= shiftTimeZone( date,tz,tz1);
System.out.println("Format : " + sf.format(c));
输出 sun.util.calendar.ZoneInfo [ID = “EST”,偏移= -18000000,dstSavings = 0,useDaylight =假,过渡= 0,lastRule =空]
Format : 01-05-2013 16:23:57
答案 1 :(得分:1)
你可以在这里找到答案:
Date and time conversion to some other Timezone in java
您必须使用TimeZone
类和Calendar类。
获取当前时间:
Calendar currentdatetime = Calendar.getInstance();
只需在TimeZone
类中传递您的时区名称,如下所示:
TimeZone.getTimeZone("EST");
使用DateFormater
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
然后像这样格式化你的时间:
formatter.setTimeZone(obj);
并获得如下输出:
System.out.println("EST Time is : "+ formatter.format(currentdatetime .getTime())