
Transformer une date dans une chaine en Date au format utc
Étiquetté : Chromecast, power apps, TV
Transformer une date dans une chaine en Date au format utc
Posté par Didier ALTIDE sur 10 novembre 2021 à 11h13Je vous pose une question qui m’a été soumise. L’idée est de proposer un Forms avec des propositions de créneau de rendez-vous, et d’automatiser la génération de l’invitation.
Problème : dans le Forms on veut pouvoir afficher la proposition “en langage naturel”, c’est-à-dire “02/11/2021 11h30-12h00”, or l’action pour générer l’invitation nécessite une heure sur le format “MM/dd/yyyy hh:mm tt’ )”.
Quelles seraient les actions à utiliser (Compose ? Set variable ?) pour recomposer depuis la réponse du formulaire une heure utilisable pour l’invitation ?
Merci pour votre aide.
PostID=IKfinfbE9tN63g5
Didier ALTIDE a répondu Il y a 1 année, 4 mois 1 Membre · 12 Réponses- 12 Réponses
Après la soumission, tu peux re formater comme souhaiter.Il me semble qu'en utilisant, exemple formatDateTime(triggerBody()?['Date'],'dd/MM/yyyy hh:mm'),nTu peux reconstruire la format et l'ordre dea valeurs de la date que tu souhaites.nnMais microsoft Forms, j'ai pas l'impression que l'option du format de la date soit disponible...nmais il me semble que le format est calqué sur le format de l'utilisateur et de sa région.n
CommentID=zHqRC0LYgW7qDPo, PostID=IKfinfbE9tN63g5
Alors justement, on utilise pas la question “Date” de Forms, mais la question “réponse à choix unique”. Donc ce que l’on obtient c’est juste le contenu de la réponse au format string.
Je ne pense pas que formatDateTime va reconnaître dans cette chaine une date, si ?
Par contre qu’après avoir splitté, concaténé, etc… on puisse recomposer une date… ?
CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
@Didier ALTIDE Ah je comprends !
En gros vous proposez des dates “forcées” via des champs oui/non ?
Si oui, A mon avis, le plus simple est de faire des conditions en fonctions des réponses.
Vu que vous savez quelle réponse est égale à telle date, vous conditionnez votre flux en fonction des réponses et vous pouvez ensuite créer votre invitation avec la date en “dure”.
Si vous me dites que vous avez 15 choix de dates, c’est sur que cela va faire lourd, si c’est deux choix, c’est super rapide.
EDIT : Ou alors, vous faites des listes multi choix avec les dates et heures déjà au bon format.
Dans l’action Response, ceka devrait être exploitable directement dans votre invitation.
SubCommentID=D1agcdGQphG676t, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
C’est cela !
En fait mon collègue voudrait ne pas avoir à modifier l’automate à chaque fois que des nouvelles propositions de réponse vont être saisies par quelqu’un qui lui(elle)-même ne saura pas changer l’Automate seul(e) (ou n’aura pas les droits).
On voudrait juste faire respecter la syntaxe de la date dans la réponse, et que l’automate décortique tout seul la réponse pour générer la bonne invit’
SubCommentID=lE3OWlutuKi2kXk, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
Est-ce que dans l’invitation, c’est un unique champ ou deux champs date(s)?
Si on est dans le second cas, il faut effectivement des actions type Components ou des varibales pour casser la valeur du Microsoft Form et reconstruire les dates deux dates, date de début et date de fin.
Je pense qu’avec une fonction split, cela vous permet de récupérer la date, puis les heures séparées, puis vous refactorisez le tout.
SubCommentID=Q7Y0Ef5sI9jDZYx, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
@Ju_li3n Dans l’invitation il faut définir date/heure de début et date/heure de fin, mais date de fin c’est date de début +1h, ça on sait déjà le gérer quand on prend utc(now) comme date de début.
Le vrai challenge c’est de trouver la combinaison de split et de concatener qui va nous amener à reformater une date de début acceptable.
SubCommentID=pGOT9aDgGLWsLeX, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
La fonction Split va permettre de garder la valeur à gauche du séparateur : split(outputs('VOTRE REPONSE'), '-')[0]nEt dans Microsoft forms, vous remplacez le "h" par ":" et je pense que vous êtes dans le bon format de date.nnLe format date Eurpéen : dd/MM/yyyy HH:mm donc vous seriez tout bon.n
SubCommentID=rwhdP0mnQalHb7O, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
@Didier ALTIDE, dans les dates que tu mets dans tes réponses à choix unique, elles sont au format dd/mm/yyyy etc. ou mm/dd/yyyy etc. ?
SubCommentID=Tuu2q3ldvbbd2pc, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
@R3dKap “02/11/2021 11h30-12h00”. Donc il faudrait isoler les 16 premiers caractères, séparer les 10 premiers pour en faire un dd/mm/yyyy, prendre les 5 derniers des 6 qui restent en partant de la droite, remplacer les h par des “:” afin de récupérer une heure au format hh:mm
SubCommentID=vGWMHf2SwRZXcR7, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
@Didier ALTIDE, voici les formules (j’ai supposé que tes dates de choix étaient au format 31/01/2021 12h30-13h30)…
Note : ‘str‘ est une variable qui contient ta date de choix au format 31/01/2021 12h30-13h30.
Pour la date/heure de début
concat(split(variables('str'),'/')[1],'/',substring(variables('str'),0,2),'/',substring(split(variables('str'),'/')[2],0,4),' ',replace(split(split(variables('str'),' ')[1],'-')[0],'h',':'),':00')n
En gros, ça te renvoie : 01/31/2021 12:30:00
Pour la date/heure de fin
concat(split(variables('str'),'/')[1],'/',substring(variables('str'),0,2),'/',substring(split(variables('str'),'/')[2],0,4),' ',replace(split(split(variables('str'),' ')[1],'-')[1],'h',':'),':00')n
Et celle-ci te renvoie : 01/31/2021 13:30:00
Les dates sous ce format sont alors transformables en vraie dates avec la fonction suivante (ou sous tout autre format d’ailleurs selon ce que tu mettras dans le 2è paramètre) :
formatDateTime(variables('datestrdeb'), 'yyyy-MM-ddTHH:mm:ss')n
SubCommentID=4hrvgXE7qffRvyW, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
Merci à tous les deux !!!!! Mille fois !!!
SubCommentID=D31qDVwW6BMeEBG, CommentID=CEOFUKBQ4R9OqJf, PostID=IKfinfbE9tN63g5
Connectez-vous pour répondre.