Pregunta

¿Qué función C debo llamar para obtener una fecha y hora formateado para el entorno donde se ejecuta el programa?

estoy haciendo esta pregunta porque me he encontrado con un problema con la API de ClamAV demonio. El comando VERSION devuelve la fecha y hora de las definiciones de virus, pero el código utiliza una llamada a ctime formatearlo. Por lo que yo puedo decir ctime no formatear la fecha y hora de acuerdo a la localización actual y los usos de las abreviaturas en inglés para los días de la semana y del mes en la cadena devuelta. Esto causa problemas como mi programa Java que utiliza la API de ClamAV hace respetan la localización actual y por lo tanto espera que el día de la semana y el mes tiene nombre a las abreviaturas locales.

El formato de fecha y hora tendría que estar en el mismo formato que la producida por ctime :

WWW Mmm dd hh: mm: ss aaaa

Cuando WWW es el día de la semana, el mes Mmm en letras, DD el día del mes, hh: mm:. Ss el tiempo, y aaaa el año

Yo podría reescribir el programa Java para asumir siempre las fechas en inglés, pero sería más feliz enviar un parche a ClamAV ya que parece un error de su parte para mí.

¿Fue útil?

Solución

strftime("%c", ... le debe dar la fecha preferida y la representación de tiempo para la localización actual. O (aún con strftime) puede emular el formato de ctime pero con %b para la corriente de la configuración regional mes abreviatura, %a para la corriente de la configuración regional abreviatura de lunes a viernes, y así sucesivamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top