【问题标题】:How to parse String into Gregorian Calendar? [duplicate]如何将字符串解析为公历? [复制]
【发布时间】:2018-09-07 23:12:21
【问题描述】:

我使用toString() 方法将公历转换为字符串以上传我的数据库。 (因为我的数据库不应用日历类型) 这里是例子。

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]

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

【问题讨论】:

  • 您可以尝试存储可以从timeInMillis() 获得的长值,而不是将日历存储为字符串。该值将更容易转换回日历。

标签: android


【解决方案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());

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 感谢您的帮助。你的答案是我想要的。我会努力的,
    • @whittakerBen 成功了吗?
    • 当然,你成就了我的一天。谢谢。
    【解决方案3】:

    不要保存日历的字符串表示。将时间戳保存为 Long。

    这里是一个例子:

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

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 2013-08-16
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      相关资源
      最近更新 更多