【问题标题】:How To Date Transform如何日期转换
【发布时间】:2016-09-26 12:13:41
【问题描述】:

如何将 date 转换为 CharSequence 。我曾经将日期转换为字符串。 但我收到了Exception

CharSequence timeAgo = DateUtils.getRelativeTimeSpanString(
            Long.parseLong(newsData.getNewsDateCreated()),
            System.currentTimeMillis(), DateUtils.SECOND_IN_MILLIS);

如何正确转换?我的远程服务器返回一个日期格式:2016-9-26 - 我不希望它出现。从日期开始我可能需要将其转换为时间?

输出应该是这样的:

【问题讨论】:

    标签: android date character-encoding date-format


    【解决方案1】:

    如果您的格式显示“00:00:00T2016-08-24” 拆分格式并采取任何你想要的。 你有一个选择。

    就我而言,我只想显示我这样做的日期,​​但我的格式是这样的 "2016-08-24T00:00:00"

    holder.tYorDate.setText(list.get(position).getDate().split("T")[0]);

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
      
      Date convertedDate = new Date();
      Date currentDate = new Date();
      try{
      convertedDate = dateFormat.parse(newsData.getNewsDateCreated());
      }
                  catch (ParseException e)
                  {
                      e.printStackTrace();
                  }
      
          public long getDifference(Date startDate, Date endDate){
      
              //milliseconds
              long different = endDate.getTime() - startDate.getTime();
      
              long secondsInMilli = 1000;
              long minutesInMilli = secondsInMilli * 60;
              long hoursInMilli = minutesInMilli * 60;
              long daysInMilli = hoursInMilli * 24;
      
              return elapsedHours = different / hoursInMilli;
      
          }
      

      这应该可以完成工作。在需要的地方使用 getDifference(convertedDate, currentDate) 并相应地使用小时/小时。

      【讨论】:

      • 没有DateTimeUtils
      • @RoCk 试试新答案
      【解决方案3】:
      String resultDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").format(new Date());
      

      【讨论】:

        【解决方案4】:

        使用这个

        String uDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").format(new Date());
        

        这里 new Date() 是当前日期

        【讨论】:

        【解决方案5】:

        你可以使用下面的代码

        String str_date = "2014-11-26";
        
        SimpleDateFormat readFormat = new SimpleDateFormat("yyyy-mm-dd");
        SimpleDateFormat writeFormat = new SimpleDateFormat("MMM dd,yyyy");
        
        java.util.Date date;
        
        date = readFormat.parse(str_date);
        

        对于您想要的日期格式,您也可以参考此链接 SimpleDateFormat

        【讨论】:

          【解决方案6】:

          首先,我们需要将特定格式转换为日期对象

          例如

          String yourdate = "Tue Apr 23 16:08:28 GMT+05:30 2013";
          SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
          Date mDate = dateFormat.parse(yourdate);
          

          在这里,我准备了可以帮助您将日期转换为字符的函数

           public static String getTimeDifference(long mActual){
          
              long mCurrent=0;
              int diffInDays=0;
          
                  mCurrent = System.currentTimeMillis();
          
                  if (mCurrent == 0 || mActual == 0)
                      return "";
          
                  long diff = mCurrent - mActual;
          
                  diffInDays = (int) (diff / (1000 * 60 * 60 * 24));
          
              if (diffInDays > 0) {
          
                      return diffInDays + "days ago";
          
                  } else {
          
                      int diffHours = (int) (diff / (60 * 60 * 1000));
                      if (diffHours > 0) {
                          return diffHours + "hours ago";
                      } else {
          
                          int diffMinutes = (int) ((diff / (60 * 1000) % 60));
                          if(diffMinutes == 0)
                              return "Just Now";
                          return diffMinutes + "minutes ago";
                      }
                  }
          
          }
          

          所以你去:

          getTimeDifference(mDate.getTime);
          

          【讨论】:

          • 我会试试看的。
          • 为什么是(long mActual) - long
          • 当您传递 mDate.getTime() 时,它是毫秒。所以它的数据类型很长。并且很容易与 currentTime 以毫秒为单位进行比较。
          猜你喜欢
          • 2018-02-16
          • 2011-09-30
          • 1970-01-01
          • 2017-04-15
          • 2011-04-14
          • 2010-11-03
          • 2020-03-19
          • 2012-08-12
          • 2019-06-14
          相关资源
          最近更新 更多