2010-02-10 4 views
2

J'ai des données stockées dans une table mySQL sous le type de colonne "timestamp" que je souhaite afficher en tant que date conforme à la RFC-822, pour inclusion dans un flux RSS valide.Comment convertir un horodatage mySQL en RFC-822 à l'aide de Perl?

Je sais comment je pourrais simplement sortir l'heure actuelle en tant qu'objet RFC-822 en utilisant perl, mais je n'ai pas compris comment convertir une chaîne existante. La chaîne est formatée comme suit: AAAA-MM-JJ HH: MM: SS

Répondre

2

est ici ce qui a fini par travailler pour moi:

use POSIX qw(strftime); 
... 
$timestamp =~ /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/; 
$rssTS = strftime('%a, %d %b %Y %T %Z', $6, $5, $4, $3, $2 - 1, $1 - 1900, -1, -1, -1); 
+0

Cela a fonctionné comme un charme pour moi aussi. Merci d'avoir posté cela. – Wick

0

Est-ce que je me demande? Que diriez-vous de DateTime::Format::DateParse?

+0

J'ai essayé de comprendre que - et quelques autres modules sur CPAN - mais ils avaient l'air beaucoup trop alambiquée, et nécessaire, en utilisant plusieurs modules (un à convertir mon horodatage en un "time from epoch" et un autre pour le convertir en sortie correcte). Je suis sûr qu'il y a une solution plus élégante que celle que j'ai fini par utiliser, mais je ne l'ai pas trouvée. – WinnPh

Questions connexes