docs: @Nullable
      public Date getGpsDate()
      {
          String date = getString(TAG_DATE_STAMP);
          Rational[] timeComponents = getRationalArray(TAG_TIME_STAMP);
  
          // Make sure we have the required values
          if (date == null)
              return null;
          if (timeComponents == null || timeComponents.length != 3)
              return null;
  
          String dateTime = String.format(Locale.US, "%s %02d:%02d:%02.3f UTC",
              date, timeComponents[0].intValue(), timeComponents[1].intValue(), timeComponents[2].doubleValue());
          try {
              DateFormat parser = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss.S z");
              return parser.parse(dateTime);
          } catch (ParseException e) {
              return null;
          }
      }