陈清红
2025-04-14 880f3c0257eeb8c37761d484258fdd102a369a19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Quintiq file version 2.0
#parent: #root
Method PTF_GetDateTime (
  String value_i,
  output String feedback_o
) as DateTime id:Method_LibPTF_pnlTestRunner_PTF_GetDateTime
{
  #keys: '[108090.0.815217668]'
  Body:
  [*
    datetime       := DateTime::MinDateTime();
    datetimelength := value_i.Length(); 
    
    // Expected format: YYYY-MM-DD or
    //                  YYYY-MM-DD hh:mm:ss
    formatOK := ( datetimelength = 10              and
                  value_i.SubString(  4, 1 ) = "-" and
                  value_i.SubString(  7, 1 ) = "-"
                ) or
                ( datetimelength = 19              and
                  value_i.SubString(  4, 1 ) = "-" and
                  value_i.SubString(  7, 1 ) = "-" and
                  value_i.SubString( 10, 1 ) = " " and
                  value_i.SubString( 13, 1 ) = ":" and
                  value_i.SubString( 16, 1 ) = ":"
                );
    
    if( formatOK )
    {
      formatString := 'yyyy-MM-dd';
    
      // DateTime
      if( datetimelength = 19 )
      {
        formatString := formatString + ' HH:mm:ss';
      }
    
      stdconverter := StringToDateTime::StandardConverter();
      stdconverter.CustomFormatString( formatString );
    
      if( stdconverter.CanConvert( value_i ) )
      { 
        datetime := stdconverter.Convert( value_i );
      }
      else
      {
        feedback_o := "Invalid datetime: " + value_i;
      }
    }
    else
    {
      feedback_o := "Wrong datetime format: " + value_i + ". Expected format: YYYY-MM-DD or YYYY-MM-DD hh:mm:ss";
    }
    
    return datetime;
  *]
}