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 enCalendar
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 delc.get(Calendar.WEEK_OF_YEAR)
? - Por favor, mostrar
lYear
,lMonth
ylDay
valores - Si usted llama de la lc.getTime (), ¿qué se obtiene?
- He actualizado para mostrar cómo voy por la lValues.
uso
lugar de
EDITAR
Usted puede analizar su fecha (en lugar de
dateIn.split(
etc.)y el formato a continuación,
Este código es correcto, el problema está en
formWIM.format(...)
o la batería de la placa base del reloj está agotada.