Get dates from AUT?

后端 未结 2 1762
迷失自我
迷失自我 2021-01-15 19:47

My Web-based application (like most) follows the browser locale to format dates.

So if you configure British English as the preferred language in the browser, the ap

相关标签:
2条回答
  • 2021-01-15 20:26

    While it is said (by Microsoft, see https://technet.microsoft.com/en-us/library/ee176965.aspx) that GetLocale and SetLocale are usable only in WebPages, those functions are exactly what I was looking for. And they work within QTP.

    To convert a date value from the AUT (being a string) to a VBScript date value, I

    • call GetLocale to fetch and save the original locale
    • call SetLocale to switch to the same locale as the browser´s (read from registry)
    • use DateValue to convert the string to a native date (or use any other locale-sensitive routine)
    • call SetLocale with the original setting to switch back to the original locale.

    Interestingly, QTP always starts a test´s execution with the system locale active -- even if the last test execution did leave behind a different locale set active.

    See f.e. https://support.microsoft.com/de-de/kb/232158/en-us

    0 讨论(0)
  • 2021-01-15 20:34

    Not sure about QTP, but the windows scripting host handles it via SetLocale

    Option Explicit
    
    Dim originalLocale
        originalLocale = GetLocale()
    
    Dim aLocales
        aLocales = Array("en-us", "es-es", "de")
    
    Dim locale, aDates, d
    
        For Each locale in aLocales
            WScript.Echo locale
            SetLocale locale
    
            aDates = Array( Date(), DateValue("01/02/2015"))
            For Each d in aDates
                WScript.Echo FormatDateTime(d, 1)
                WScript.Echo FormatDateTime(d, 2)
            Next 
            WScript.Echo "-------------------------------------------------"
        Next
    
        SetLocale originalLocale
    
    0 讨论(0)
提交回复
热议问题