Hola, digamos que guardo una fecha y hora en un string con este formato: "2014-07-11T10:27:45+02:00"
¿Qué tendría que hacer para pasarla a un Calendar? Gracias y un saludo ;)
| |||
De String a Calendar con este formato Hola, digamos que guardo una fecha y hora en un string con este formato: "2014-07-11T10:27:45+02:00" ¿Qué tendría que hacer para pasarla a un Calendar? Gracias y un saludo ;) |
| |||
Respuesta: De String a Calendar con este formato Ups, creo que me alegré demasiado pronto. Ocurre que, aunque esa solución iba bien en el entorno de pruebas que usaba, no me vale en el entorno de desarrollo porque aquí estoy sujeto a usar Java 1.5 y la primera versión de las librerías JAXB. Por tanto, no tengo disponible la función "parseDateTime()". ¿Hay alguna otra forma? |
| ||||
Respuesta: De String a Calendar con este formato jaxb viene incluida en java desde java 6, pero puede descargarse por separado para versiones anteriores y esa clase (supongo que el método también), esta disponible desde JAXB 1 . ¿No puedes poner ese jar como dependencia de tu proyecto? La librería joda time también tiene esta conversión, si no puedes o quieres poner jaxb, aunque sería otra librería distinta. Y si no puedes poner librerías adicionales, no tendrás más remedio que hacerte el parser a mano. java no es capaz de leer ese formato. Aquí lo tienes hecho http://www.java2s.com/Code/Java/Data...ingutility.htm Se bueno. |
| |||
Respuesta: De String a Calendar con este formato Ya no estoy tan seguro de que sea cosa de las librerías; el caso es que me salta un NPE "at javax.xml.bind.DatatypeConverter.parseDateTime(Dat atypeConverter.java:263)". No tengo acceso a los fuentes de esa clase, pero me suenta bastante raro. |
| |||
Respuesta: De String a Calendar con este formato No se, si es que le paso directamente una cadena de texto. La llamada es exactamente así: Calendar fecha = javax.xml.bind.DatatypeConverter.parseDateTime("20 14-07-11T10:27:45+02:00"); No veo de dónde puede surgir el nulo. |
| |||
Respuesta: De String a Calendar con este formato Muy bien: [17/07/2014 10:30:41] - ERROR [jsp].invoke: Servlet.service() para servlet jsp lanzó excepción java.lang.NullPointerException at javax.xml.bind.DatatypeConverter.parseDateTime(Dat atypeConverter.java:263) at globales.filtros.CargarAgencias.pruebaWS(CargarAge ncias.java:200) <- Aquí hago la llamada at globales.filtros.CargarAgencias.getDatosVuelta(Car garAgencias.java:187) at org.apache.jsp.jsp.inicio.COM_005finitApp_jsp._jsp Service(COM_005finitApp_jsp.java:320) at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet .java:729) at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:331) at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet .java:729) at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188) at globales.FiltroAutenticacion.doFilter(FiltroAutent icacion.java:57) at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:875) at org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:595) |
| ||||
Respuesta: De String a Calendar con este formato Hola: Estoy viendo que en algunas versiones de jaxb, antes de usar ese método, es necesario hacer una llamada a setDatatypeConverter.setDatatypeConverter(Datatype ConverterInterface); En la versión de jaxb que tengo yo no es necesario, puesto que se inicializa por defecto con una instancia de DatatypeConverterImpl que imagino implementa DatatypeConverterInterface. Mira a ver si tienes esa clase y puedes hacer la llamada. Se bueno. |
| ||||
Respuesta: De String a Calendar con este formato Pues lo que te he dicho, una instancia de una clase que implemente DatatypeConverterInterface y que en mi caso se hace por defecto y es una instancia de una clase DatatypeConverterImpl, que no sé si tienes o no disponible. Posiblemente la tenga en alguna version de jaxb (no sé si la version 1 que dices que usas la tiene o no). Se bueno. |
| |||
Respuesta: De String a Calendar con este formato Dispongo de esa clase en mis librerías, pero si intento hacer DatatypeConverter.setDatatypeConverter(new DatatypeConverterImpl()); me aparece un error diciendo que el método constructor no es visible. |
| ||||
Respuesta: De String a Calendar con este formato Mira a ver si en vez de la llamada original puedes hacer esta Calendar cal = DatatypeConverterImpl.parseDateTime("tu cadena") Creo que está obsoleta, pero si funciona ya esta. En general esta obsoleta porque la clase que tu tienes debe ser del paquete com.sun.xml.bind y la documentación dice que en su lugar se use la del paquete javax.xml.bind Ahi va el fuente de la clase (no sé si es la que tienes tú), para que puedas ver posibles métodos https://svn.java.net/svn/jaxb~versio...erterImpl.java Se bueno. |
| |||
Respuesta: De String a Calendar con este formato Pues me temo que no me deja usarla: "Cannot make a static reference to the non-static method parseDateTime(String) from the type DatatypeConverterImpl" Una cosa: aunque no puedo actualizar librerías ya existentes, quizá sí pueda añadir nuevas. Mencionaste antes una librería llamada joda time; ¿se usaría de un modo similar? Saludos. |
| ||||
Respuesta: De String a Calendar con este formato Ok, el método ese no es static, prueba a llamarlo con _ delante, que si miras el enlace que te puse, ese es public y static. No he usado joda time, pero sé que admite ese tipo de formato de fechas, tendrás que mirar cómo se usa. Se bueno. |
| |||
Respuesta: De String a Calendar con este formato Nada, me dice que no existe el método. Yo creo que no me va a quedar más remedio que mirar a ver cómo va la otra librería, espero que sea fácil de usar. Muchas gracias por tu ayuda! |
Etiquetas: |