93 votes

Excel date à timestamp Unix

Est-ce que quelqu'un sait comment convertir une date Excel en un horodatage Unix correct?

111voto

Cybercampbell Points 322

Aucun de ceux-ci n'a fonctionné pour moi ... quand j'ai reconverti l'horodatage il y a 4 ans.

Cela a fonctionné parfaitement: =(A2-DATE(1970,1,1))*86400

Le crédit va à: Filip Czaja http://fczaja.blogspot.ca

Message original: http://fczaja.blogspot.ca/2011/06/convert-excel-date-into-timestamp.html

82voto

Jeff Wu Points 943

Windows et Mac Excel (2011):

 Unix Timestamp = (Excel Timestamp - 25569) * 86400
Excel Timestamp =  (Unix Timestamp / 86400) + 25569
 

MAC OS X (2007):

 Unix Timestamp = (Excel Timestamp - 24107) * 86400
Excel Timestamp =  (Unix Timestamp / 86400) + 24107
 

Pour référence:

 86400 = Seconds in a day
25569 = Days between 1970/01/01 and 1900/01/01 (min date in Windows Excel)
24107 = Days between 1970/01/01 and 1904/01/02 (min date in Mac Excel 2007)
 

11voto

Grendler Points 464

Si nous supposons que la date dans Excel dans la cellule A1 formaté que la Date et le timestamp Unix devrait être dans une cellule A2 formaté comme le numéro de la formule dans la cellule A2 devrait être:

= (A1 * 86400) - 2209075200

où:

86400 est le nombre de secondes dans la journée 2209075200 est le nombre de secondes entre 1900-01-01 et 1970-01-01 qui sont à la base des dates pour Excel et des timestamps Unix.

Le ci-dessus est valable pour Windows. Sur Mac la date de base dans Excel est 1904-01-01 et les secondes nombre doit être corrigé: 2082844800

6voto

radicand Points 3168

Parce que mes modifications à ce qui précède ont été rejetées (avez-vous réellement essayé?), Voici ce dont vous avez vraiment besoin pour que cela fonctionne:

Windows (et Mac Office 2011+):

  • Horodatage Unix = (Excel Timestamp - 25569) * 86400
  • Horodatage Excel = (Unix Timestamp / 86400) + 25569

MAC OS X (avant Office 2011):

  • Horodatage Unix = (Excel Timestamp - 24107) * 86400
  • Horodatage Excel = (Unix Timestamp / 86400) + 24107

2voto

Mark Points 29

Vous êtes apparemment en retard d'un jour, exactement 86400 secondes. Utilisez le numéro 2209161600 et non le numéro 2209075200. Si vous recherchez les deux numéros sur Google, vous trouverez une assistance. J'ai essayé votre formule mais avais toujours un jour différent de mon serveur. Ce n'est pas évident avec l'horodatage Unix à moins que vous ne pensiez en unix au lieu du temps humain ;-) mais si vous vérifiez, vous constaterez que cela pourrait être correct.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X