Q&A

  • 시간 표시 Format
아래와 같은 Procedure를 실행시켜서 현재시간을 표시하면

procedure TForm1.Button1Click(Sender: TObject);
var STime : TDateTime;
begin
    STime := Time;
    Memo1.Lines.Add(TimeToStr(Time));
end;


이렇게 나옵니다.

->  오후 11:59:35

DB에 입력하려면   1) 23:59:35
                 또는   2) pm 11:59:35

이런 형태로 얻는 것이 유리할 듯한데 방법이 있는 것인가요?
4  COMMENTS
  • Profile
    이윤도 2010.01.10 20:40
    <!--CodeS-->
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Memo1.Lines.Add(FormatDateTime('hh:nn:ss', Now)); //23:59:35으로 표시가 됩니다.
    Memo1.Lines.Add(FormatDateTime('yyyy-mm-dd hh:nn:ss', Now)); //년도와 월 일과 시간으로도 표시가 가능하구요
    end;
    <!--CodeE-->

  • Profile
    이용벽 2010.01.11 01:23
    감사합니다.

    그런데 한가지 문제가 더.

    TimeStr:=FormatDateTime('hh:mm:ss',now);
    Memo1.Lines.Add(TimeStr);

    Table1.Open;
    Table1.Append;
    Table1['STime']:= StrToTime(TimeStr);

    이렇게 하면
    Memo에는 '16:10:23' 이 나오는데
    DB Table에는 여전히 '오후 4:10:23' 이 입력되는 군요.
    외국에 보낼 SW라서 한글입력은 곤란하거든요.
    지금 열심히 해법 찾아보고 있는데 잘 안되고 있습니다.
    이 부분도 도움 부탁드립니다.
  • Profile
    이윤도 2010.01.11 19:46
    테이블필드가 DateTime 이라면 당연히 '오후 4:10:23' 으로 표시가 될겁니다.
    필드를 Text로 바꾸시면 그냥 문자 그대로 입력이 되죠. 굳이 시간으로 변경하지 않고요.
    만일 필드가 DateTime으로 고정으로 가셔야한다면 OS가 영문판이라면 'PM 4:10:23'
    으로 표시가 될듯한데요^^

    그럼 즐거운 한주되세요^^
  • Profile
    이용벽 2010.01.11 23:40
    감사합니다. 오전/오후 한글 표시는 한글윈도우즈에서 만드는 듯합니다.
    말씀하신대로 날짜와 시간을 TDateTime이 아니라 String으로 저장해야 되겠습니다.