gpt4 book ai didi

java - 如何以自定义日期格式返回日历对象

转载 作者:太空宇宙 更新时间:2023-11-04 14:15:36 26 4
gpt4 key购买 nike

如何使用它返回日历对象。

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

关于java - 如何以自定义日期格式返回日历对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27785598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com