[Résolu][Basic] Obtenir l'heure UTC

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
CanadaDry
Membre hOOnoraire
Membre hOOnoraire
Messages : 171
Inscription : 25 nov. 2014 14:09
Localisation : Laval, QC

[Résolu][Basic] Obtenir l'heure UTC

Message par CanadaDry »

Bonjour le forum,

J'ai un document qui sera donné à des utilisateurs répartis sur plusieurs fuseaux horaires.
Pour ne pas faire de broche à foin, j'ai pensé à récupérer l'heure UTC des datas saisies.

Ma question est comment faire ?
L'idéal serait une fonction dans laquelle je passe l'heure et qui me retourne l'UTC :

Code : Tout sélectionner

Function getTimeUTC (sTime )
   ' le code qui me manque
End Function
PS : bien que mon doc tourne avec Calc, j'ai mis Basic car elle me semble indépendante.
Dernière modification par CanadaDry le 22 juil. 2019 18:20, modifié 1 fois.
OpenOffice 4.1.8 Windows 7 Edition Professional
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5752
Inscription : 02 janv. 2009 23:56

Re: [Basic] Obtenir l'heure UTC

Message par Jean-Louis Cadeillan »

Bonjour,
L'extension Java Time Zones pourrait fonctionner. À tester.
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
Messages : 3160
Inscription : 06 juil. 2008 17:08
Localisation : dans le Périgord

Re: [Basic] Obtenir l'heure UTC

Message par gerard24 »

Bonjour,

Sur le forum en langue anglaise : [Solved] How can I get GMT (UTC) time into my macro (Basic)?
Solution pour Windows uniquement.

A+
OOodidacte
LibreOffice 6.4.5 sous Windows 10.
pour télécharger LibreOffice
Avatar de l’utilisateur
CanadaDry
Membre hOOnoraire
Membre hOOnoraire
Messages : 171
Inscription : 25 nov. 2014 14:09
Localisation : Laval, QC

Re: [Basic] Obtenir l'heure UTC

Message par CanadaDry »

Merci pour ces 1eres réponses matinales

@Jean-Louis: l'installation de l'extension ne me sera pas possible.

@Gérard: j'aurai des systèmes sous Mac parmi les utilisateurs

Je recherche une solution si possible Basic pur sans avoir recours à extension ou bibliothèque (DLL) externe
OpenOffice 4.1.8 Windows 7 Edition Professional
Avatar de l’utilisateur
CanadaDry
Membre hOOnoraire
Membre hOOnoraire
Messages : 171
Inscription : 25 nov. 2014 14:09
Localisation : Laval, QC

Re: [Basic] Obtenir l'heure UTC

Message par CanadaDry »

Je vois qu'il y a du code en Python dans le thread anglais.
Je vais regarder si cela convient.

Si quelqu'un a une réponse Basic, je reste preneur. :)

A tantôt
OpenOffice 4.1.8 Windows 7 Edition Professional
Jeff
GourOOu
GourOOu
Messages : 9628
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Basic] Obtenir l'heure UTC

Message par Jeff »

Bonjour à tous,

Il y a aussi ce fil de discussion,:
https://forum.openoffice.org/en/forum/v ... &hilit=utc

A +
 Ajout : a priori, il va falloir réussir à utiliser Network Time Protocol pour se connecter à un serveur de temps et faire ce que tu souhaites... 
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Basic] Obtenir l'heure UTC

Message par OOotremer971 »

Bonjour,

Basé sur le suggestion de Jeff (que je salue au passage).

Il s'agit de récupérer l'heure UTC fournie par un site quelconque (je n'ai pas réussi à partir d'un serveur NTP). J'en ai trouvé un sans fioritures ici : http://www.heure.com/heure-fr.php?timezone=0/
En effectuant une recherche sur la fonction OPEN dans l'aide F1, j'ai trouvé un exemple de code qui permet de récupérer des infos à partir d'une URL que j'ai adapté à la situation.

A tester :

Code : Tout sélectionner

Sub TimeUTC
Dim iNumber As Integer
Dim sLine As String
Dim aFile As String
Dim sMsg As String
aFile = "http://www.heure.com/heure-fr.php?timezone=0/"
iNumber = Freefile
Open aFile For Input As iNumber
Do
Line Input #iNumber, sLine
Loop Until Left(sLine, 26) = "ejs_server_date = new Date"
Close #iNumber
x=(left(Right(sLine, 11),10))
x=split(x,",")
z=trim(x(0))&":"&trim(x(1))&":"&trim(x(2))
MsgBox TimeValue(z)
End Sub
Nécessite une connexion à internet.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Avatar de l’utilisateur
CanadaDry
Membre hOOnoraire
Membre hOOnoraire
Messages : 171
Inscription : 25 nov. 2014 14:09
Localisation : Laval, QC

Re: [Basic] Obtenir l'heure UTC

Message par CanadaDry »

Tiguidou!

Ca me va, merci OOotremer971
OpenOffice 4.1.8 Windows 7 Edition Professional
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Résolu][Basic] Obtenir l'heure UTC

Message par OOotremer971 »

Bonjour,

En complément, à partir d'un autre site : h**p://dateandtime.info/fr/utc.php on peut en plus récupérer la date du jour.
J'ai pensé qu'en fonction de la position géographique des utilisateurs cela pourrait être nécessaire voire indispensable :
Date_et_heure_UTC.png

Code : Tout sélectionner

Option explicit

Sub Main
Dim iNumber As Integer, i as Integer
Dim sLine As String, aFile As String, sMsg As String
aFile = "http://dateandtime.info/fr/utc.php"
iNumber = Freefile
Open aFile For Input As iNumber
For i = 1 to 268
	Line Input #iNumber, sLine
	if i = 268 Then
		sMsg = Right(Left(sLine,71),19)
	end if
next	
Close #iNumber
msgBox sMsg
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Avatar de l’utilisateur
CanadaDry
Membre hOOnoraire
Membre hOOnoraire
Messages : 171
Inscription : 25 nov. 2014 14:09
Localisation : Laval, QC

Re: [Résolu][Basic] Obtenir l'heure UTC

Message par CanadaDry »

Finalement, j'ai changé pour un autre site fournissant une API.
Voici le source code final:

Code : Tout sélectionner

Function getTimeUTC
        sURL = convertToURL("http://worldclockapi.com/api/json/utc/now")
        oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
        oFlux = oSFA.openFileRead(sURL)
        oTIS = createUnoService("com.sun.star.io.TextInputStream")
        oTIS.InputStream = oFlux
        Do while Not oTIS.isEOF
           sLigne = oTIS.readLine
        Loop
        oTIS.closeInput
        oFlux.closeInput
        oDate = Split (sLigne, ",") '-> "currentDateTime":"2019-07-25T07:06Z"
        sUTC = Mid (oDate(1), 20, 16)
        oUTC = Split (sUTC, "T")
        GetTimeUTC = oUTC(0) & " " & oUTC(1)
End Function
Mes 2 cts
OpenOffice 4.1.8 Windows 7 Edition Professional
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Résolu][Basic] Obtenir l'heure UTC

Message par OOotremer971 »

CanadaDry a écrit :Voici le source code final:
Que tu peux encore simplifier (pour le fun) :

Code : Tout sélectionner

Function getTimeUTC
aFile = "http://worldclockapi.com/api/json/utc/now"
iNumber = Freefile
Open aFile For Input As iNumber
While Not eof(iNumber)
	Line Input #iNumber, sLine
    sMsg = Split(Right(left(sLine,46),16),"T")
Wend
Close #iNumber
getTimeUTC = sMsg(0) & " " & sMsg(1)
End Function
La fonction Open t'évite l'appel aux services "com.sun.star.ucb.SimpleFileAccess" et "com.sun.star.io.TextInputStream"
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11