| Quintiq file version 2.0 | 
| #parent: #root | 
| Method PTF_ConvertDateTimeStringToSelectedClientTimezone ( | 
|   String datetimeString | 
| ) as String id:Method_LibPTF_pnlTestController_PTF_ConvertDateTimeStringToSelectedClientTimezone | 
| { | 
|   #keys: '[131464.1.896623008]' | 
|   Body: | 
|   [* | 
|     /* Convert a DateTime that was formatted into a String to another DateTime String based on selected timezone | 
|     1. Append timezone offset into datetimeString | 
|     2. Convert string in (1) to datetime (This will be the time as it is but with timezoe offset info) | 
|     3. Convert datetime in (2) to string based on selected client timezone | 
|     */ | 
|      | 
|     // The "Z" indicates timezone offset is appended in the datatime. Example +0800 | 
|     timezoneOffsetMask               := "Z";                                                 | 
|     dateTimeFormatWithTimezoneOffset := this.PTF_GetPTFGlobalParameters().DefaultDateFormat() + timezoneOffsetMask; | 
|      | 
|     // 1. lblClientTimezoneOff stores timezone offset value, example: +0800 | 
|     datetimeStringWithTimeZoneOffset := datetimeString + lblClientTimezoneOffset.Text(); | 
|      | 
|     // 2. Convert string in (1) to datetime (This will be the time as it is but with timezoe offset info) | 
|     stringToDateTimeConverter := StringToDateTime::StandardConverter(); | 
|     stringToDateTimeConverter.SetCustomConversion(); | 
|     stringToDateTimeConverter.CustomFormatString( dateTimeFormatWithTimezoneOffset ); | 
|      | 
|     dateTimeInCurrentTimezone := stringToDateTimeConverter.Convert( datetimeStringWithTimeZoneOffset ); | 
|      | 
|     // 3. Convert datetime in current timezone to string based on selected client timezone | 
|     dateTimeToStringConverter := DateTimeToString::UserConverter(); | 
|     dateTimeToStringConverter.SetCustomConversion();                                           | 
|     dateTimeToStringConverter.CustomFormatString( dateTimeFormatWithTimezoneOffset ); | 
|      | 
|     strDateTimeInSelectedTimezone := dateTimeToStringConverter.Convert( dateTimeInCurrentTimezone ); | 
|      | 
|     // Just extract the date time part, ignore the timezone offset part | 
|     startIndex             := 0; | 
|     timezoneOffsetLength   := 5;  | 
|     convertedDatTimeString := strDateTimeInSelectedTimezone.SubString( startIndex, strDateTimeInSelectedTimezone.Length() - timezoneOffsetLength ); | 
|      | 
|     return convertedDatTimeString; | 
|   *] | 
| } |