Je veux que la date ressemble à MM-JJ-AAAA au lieu de MM/JJ/AAAA .
0 = vbGeneralDate - Default. Returns date: mm/dd/yy and time if specified: hh:mm:ss PM/AM.
1 = vbLongDate - Returns date: weekday, monthname, year
2 = vbShortDate - Returns date: mm/dd/yy
3 = vbLongTime - Returns time: hh:mm:ss PM/AM
4 = vbShortTime - Return time: hh:mm
d=CDate("2010-02-16 13:45")
document.write(FormatDateTime(d) & "<br />")
document.write(FormatDateTime(d,1) & "<br />")
document.write(FormatDateTime(d,2) & "<br />")
document.write(FormatDateTime(d,3) & "<br />")
document.write(FormatDateTime(d,4) & "<br />")
Si vous souhaitez utiliser un autre format, vous devrez créer votre propre fonction, analyser Mois, Année, Jour, etc. et les regrouper dans le format de votre choix.
Function myDateFormat(myDate)
d = WhatEver(Day(myDate))
m = WhatEver(Month(myDate))
y = Year(myDate)
myDateFormat= m & "-" & d & "-" & y
End Function
Function WhatEver(num)
If(Len(num)=1) Then
WhatEver="0"&num
Else
WhatEver=num
End If
End Function
edit: fonction ajoutée pour formater le jour et le mois en 0n
si la valeur est inférieure à 10
.
Suggérez d'appeler 'Maintenant' une seule fois dans la fonction pour vous protéger contre les modifications des minutes, voire du jour, pendant son exécution.
Ainsi:
Function timeStamp()
Dim t
t = Now
timeStamp = Year(t) & "-" & _
Right("0" & Month(t),2) & "-" & _
Right("0" & Day(t),2) & "_" & _
Right("0" & Hour(t),2) & _
Right("0" & Minute(t),2) ' '& _ Right("0" & Second(t),2)
End Function
La sortie de FormatDateTime dépend de la configuration dans les paramètres régionaux du Panneau de configuration. Ainsi, dans d'autres pays, FormatDateTime (d, 2) peut, par exemple, renvoyer aaaa-MM-jj.
Si vous voulez que votre sortie soit "invariante par la culture", utilisez la solution de stian.net. Si vous n'aimez tout simplement pas les barres obliques dans les dates et que le format de la date ne vous intéresse pas dans d'autres pays, vous pouvez simplement utiliser
Replace(FormatDateTime(d,2),"/","-")
'pour les noms de fichiers uniques que j'utilise
Dim ts, logfile, thisScript
thisScript = LEFT(Wscript.ScriptName,LEN(Wscript.ScriptName)-4) ' assuming .vbs extension
ts = timeStamp
logfile = thisScript & "_" & ts
' ======
Function timeStamp()
timeStamp = Year(Now) & "-" & _
Right("0" & Month(Now),2) & "-" & _
Right("0" & Day(Now),2) & "_" & _
Right("0" & Hour(Now),2) & _
Right("0" & Minute(Now),2) ' '& _ Right("0" & Second(Now),2)
End Function
' ======
Bien que la réponse soit fournie, j'ai trouvé une solution plus simple:
Rendez-vous amoureux:
01/20/2017
En faisant remplacer
CurrentDate = replace(date, "/", "-")
Il produira:
01-20-2017
Cet extrait résout également cette question avec datePart function . J'ai également utilisé l'astuce right()
pour effectuer une rpad(x,2,"0")
.
option explicit
Wscript.Echo "Today is " & myDate(now)
' date formatted as your request
Function myDate(dt)
dim d,m,y, sep
sep = "-"
' right(..) here works as rpad(x,2,"0")
d = right("0" & datePart("d",dt),2)
m = right("0" & datePart("m",dt),2)
y = datePart("yyyy",dt)
myDate= m & sep & d & sep & y
End Function