[英]Change Time zone without change the date format
我有日期格式,如"EEE, dd MMM yyyy HH:mm:ss Z"
,日期是
String date = "Tue, 14 Aug 2012 07:26:33 +0000";
如何在不更改日期格式的情況下更改為+0700
時區?
這就是我的嘗試
String sDate = null;
Date date = null;
try {
sDate = "Tue, 14 Aug 2012 07:26:33 +0000";
SimpleDateFormat curFormater = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
curFormater.setTimeZone(TimeZone.getTimeZone("GMT"));
try {
date = curFormater.parse(sDate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (DropboxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
lastUpdate.setText("Last Update : " + date.toString());
但結果是Tue Aug 14 14:26:33 ICT 2012
你幾乎就在那里,你已經正確地解析了日期,但你依賴於默認的toString()
而不是你已經創建的格式。
嘗試使用此代替最后一行:
lastUpdate.setText(curFormater.format(date));
或者,如果您想添加一個手動的小時數,您可以這樣做:
static final Long oneHourInMilliseconds = new Long(3600000);
static final DateFormat d = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
public static Long addHours(Date time, int hours)
{
return time.getTime() + (hours * oneHourInMilliseconds);
}
public static void main(String[] args) throws ParseException
{
String dateAsString = "Tue, 14 Aug 2012 07:26:33 +0000";
Date before = d.parse(dateAsString);
Date after = new Date(addHours(before, 7));
System.out.println("Before: " + before + ". After: " + after);
}
date -d在Unix中適用於此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.