Ok, así que lo que estoy tratando de hacer es establecer el conjunto de la fecha de un calendario de instancia, y, a continuación, devolver el week_of_year. Yo estoy haciendo, así que usando el Calendario.set() functio

public String weekInYearForm = "ww";
SimpleDateFormat formWIM = new SimpleDateFormat(weekInYearForm, Locale.US);

Calendar lc = Calendar.getInstance();
    lc.set(Calendar.YEAR, lYear);
    lc.set(Calendar.MONTH, lMonth);
    lc.set(Calendar.DAY_OF_MONTH, lDay);


    wiy = formWIM.format(lc.get(Calendar.WEEK_OF_YEAR));

Para obtener el lYear, lMonth, y lDay valores, estoy pasando una cadena en el formato 04/26/2013 a través de los siguientes pasos:

String[] arrDate = dateIn.split("/");
int lMonth = Integer.parseInt(arrDate[0]) - 1;
Log.d("SaveHandler", "Month is: " + lMonth);
int lDay = Integer.parseInt(arrDate[1]);
Log.d("SaveHandler", "Day is: " + lDay);
int lYear = Integer.parseInt(arrDate[2]);
Log.d("SaveHandler", "Year is: " + lYear);

El problema que estoy enfrentando es que cuando miro lo que es outputed a wiy, siempre es 1. En algunos depuración más, me di cuenta de que el tiempo se está a la izquierda en la época de tiempo, y no se ajuste a los valores que necesito.

También he intentado usar lc.set(lYear, lMonth, lDay), también fue en vano. Si alguien tiene alguna idea, les agradecería mucho de ellos.

*EDIT: he hecho un poco de depuración anteriores y que está regresando de 1970 para el año y 0 para el mes.

  • El Calendar.MONTH campo en Calendar es 0, no 1 (como las que estamos acostumbrados). Tal vez ahí está el problema.
  • No, yo había pensado en eso y estoy restando 1 desde antes de que yo trate de tenerla.
  • Usted debe utilizar las clases de Java o el uso de una biblioteca de terceros como Joda Tiempo que ya soluciona todos estos problemas?
  • El uso de las clases de java. Estoy escribiendo una aplicación de Android y no quieres importar librerías adicionales.
  • El calendario debe ser programado con Fecha actual – que es también una función de «setTime(Fecha)» debe estar presente. ¿Qué es «formWIM»? Intente utilizar un depurador.
  • ¿Qué es formWIM? Tu problema puede ser uno si el formato. ¿Cuál es la salida de lc.get(Calendar.WEEK_OF_YEAR)?
  • Por favor, mostrar lYear, lMonth y lDay valores
  • Si usted llama de la lc.getTime (), ¿qué se obtiene?
  • He actualizado para mostrar cómo voy por la lValues.

InformationsquelleAutor ubundude | 2013-04-26

2 Comentarios

  1. 3

    uso

    formWIM.format(lc.getTime());

    lugar de

    formWIM.format(lc.get(Calendar.WEEK_OF_YEAR));  

    EDITAR

    Usted puede analizar su fecha (en lugar de dateIn.split( etc.)

      SimpleDateFormat monthDayYear = new SimpleDateFormat("MM/dd/yyyy", Locale.US); //04/26/2013
      Date date = monthDayYear.parse("04/26/2013");  

    y el formato a continuación,

     SimpleDateFormat formWIM = new SimpleDateFormat("ww", Locale.US);  
     formWIM.format(date);
    • Sí, esto se ha solucionado. Muchas gracias!
  2. 0

    Este código es correcto, el problema está en formWIM.format(...) o la batería de la placa base del reloj está agotada.

Dejar respuesta

Please enter your comment!
Please enter your name here