簡體   English   中英

如何以自定義日期格式返回Calendar對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM