[英]How to return Calendar object in Custom Date format
如何使用此方法返回日歷對象。
public static Calendar getDeCal(Timestamp timeStamp) {
Calendar tempCal = new GregorianCalendar();
tempCal.setTime(new Date(timeStamp.getTime()));
return tempCal;
}
它以毫秒為單位以這種格式發布。
2014-06-25T21:34:04+05:30
但是我們需要這種格式以毫秒為單位
2014-06-25T21:34:04 .555+05:30
根據上述要求,我已將代碼更改為此格式
public static Calendar getDateCal(Timestamp timeStamp) throws ParseException {
Calendar tempCal = new GregorianCalendar();
SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd 'T' hh:mm:ss.SS z");
String date1 = ft.format(timeStamp.getTime());
tempCal.setTime(ft.parse(date1));
return tempCal;
}
但是它在運行時給出錯誤。
關於此的任何幫助。
我在獨立應用程序中崩潰時遇到此錯誤。
Exception in thread "main" java.lang.IllegalArgumentException
at java.util.Date.parse(Unknown Source)
at java.util.Date.<init>(Unknown Source)
如果要將Calendar對象作為變量並打印它,則在准備顯示輸出時,請使用SimpleDateFormat對象設置其格式。 我沒有看到任何通過格式字符自動填充時區冒號的方法,因此我使用了一個子字符串來添加一個。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss. SSSZZZ");
Calendar c = Calendar.getInstance();
String formattedTime = sdf.format(c.getTime());
int colon = formattedTime.length()-2;
formattedTime = formattedTime.substring(0,colon) + ":"
+ formattedTime.substring(colon);
System.out.println(formattedTime);
輸出:2015-01-05T13:30:49。 635-06:00
編輯:如果您正在尋找一個單獨的對象,它是一個日歷,並可以以給定的格式生成輸出,則您必須制作一個新的類將兩者連接在一起。 輸出和日歷對象是兩個不同的東西。 日歷代表時間。 輸出表示人類可讀的部分,字符串。
public class PersonalCalendar extends GregorianCalendar
{
SimpleDateFormat sdf;
public PersonalCalendar(Timestamp timestamp)
{
super();
setTime(timestamp);
sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss. SSSZZZ");
}
public String toString()
{
String formattedTime = sdf.format(getTime());
int colon = formattedTime.length()-2;
formattedTime = formattedTime.substring(0,colon) + ":"+ formattedTime.substring(colon);
return formattedTime;
}
}
正在使用。
Calendar c = new PersonalCalendar(timestamp);
System.out.println(c.toString());
輸出:2015-01-06T09:29:29。 783-06:00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.