如何将字符串解析为公历?

时间:2018-03-29 05:18:18

标签: android

我使用String Time = java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=java.util.SimpleTimeZone[id=GMT,offset=0,dstSavings=3600000,useDaylight=false,startYear=0,startMode=0,startMonth=0,startDay=0,startDayOfWeek=0,startTime=0,startTimeMode=0,endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=2,WEEK_OF_YEAR=12,WEEK_OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=81,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0] 方法将Gregorian Calendar转换为String,以上传我的DataBase。 (因为我的数据库不适用日历类型) 这里是例子。

Select

如何将其解析为日历类型? 如果你们能提供帮助,我们将非常感激。

3 个答案:

答案 0 :(得分:1)

像这样使用SimpleDateFormat。

 Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_MONTH,23); (etc)
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = simpleDateFormat.format(calendar.getTime());

答案 1 :(得分:0)

不保存Calendar的字符串表示形式。将时间戳保存为Long。

这是一个例子:

Calendar cal1 = GregorianCalendar.getInstance();
long timeStamp = cal1.getTimeInMillis();

Calendar cal2 = GregorianCalendar.getInstance();
cal2.setTimeInMillis(timeStamp);

答案 2 :(得分:0)

好吧,您可以将GregorianCalendar毫秒保存在long类型的数据库中。这是你如何做到的:

 long millis = GregorianCalendar.getInstance().getTimeInMillis();

当你想要应用程序中的GregorianCalendar实例时,只需从数据库中获取millis并将这些millis添加到GregorianCalendar实例中,如下所示:

GregorianCalendar gregorianCalendar = (GregorianCalendar) GregorianCalendar.getInstance();
gregorianCalendar.setTimeInMillis(millis);