Format datywytworzeniafa przy tworzeniu pliku fa

0

Witam
Jak w turbo delphi (delphi z 2006 roku) uzyskac zapis aktualnej daty i czasu według formatu:
<DataWytworzeniaFa>2024-01-19T2045.0740721+01:00</DataWytworzeniaFa>
czyli 2024-01-19T2045.0740721+01:00 a dokładniej chodzi mi o koncowke .0740721+01:00, bez tego system ksef nie przyjmuje faktury .
Według specyfikacji pliku fa
Data i czas wytworzenia faktury
Podaje się datę i godzinę wytworzenia faktury (pliku xml), w
formacie RRRR-MM-DDTGGSS (np.: 2023-09-
01T0947Z; gdzie T oznacza „Time”).
Z – ZULU – jest to określenie strefy czasowej, odpowiadającej
uniwersalnemu czasowi koordynowanemu (UTC).

sprawa dosyc pilna.... z góry dziękuje za pomoc.

Pozdrawiam
P.

0

Ten link powinien pomóc
FormatDateTime
Na gotowca brak sił i chęci.

0

Niestety to mi nic nie daje bo conajwyzej mogę uzyskać z tego trzycyfrowe milisekundy a ta końcówka co innego chyba oznacza bo nawet jak skopiuje po kropce i dopisze do swojej daty i czasu to nie przechodzi jakby to była jakaś suma kontrolna.zle w ogóle skopiowałem zaraz wkleje co chce uzyskac

<DataWytworzeniaFa>2024-01-19T2045.0740721+01:00</DataWytworzeniaFa>

i jak skopiuje koncowke .0740721+01:00 doswojej daty i czasu toplik jest nieprawidłowy.

2024-01-19T2045.0740721+01:00 po 20 jest dwukropekpozniej 56 i dwukropek i 45 dalej kropka 0740721+01:00 z postu mi wycina forum

1

Podaj proszę link do materiału online, bo Twój sposób tłumaczenia trochę zamydla

2

ale w przykładowych plikach jest format taki:

<DataWytworzeniaFa>2022-02-15T09:30:47Z</DataWytworzeniaFa>

dlaczego chcesz to zapisywać inaczej?

przykładowe-pliki-dla-struktury-logicznej-e-faktury-fa-2.zip

1

@robertz68 dokładnie, u mnie data wytworzenia wygląda tak FormatDateTime('yyyy-mm-dd', now) + 'T' + FormatDateTime('hh:nn:ss', now)

1

A to nie coś takiego https://docwiki.embarcadero.com/Libraries/Athens/en/System.DateUtils.DateToISO8601 ?

EDIT/
@robertz68 Fakt to na stare Delphi w takim razie źródło funkcji z Free Pascala nie z Delphi gdyby ktoś miał się czepiać :P

function GetLocalTimeOffset: Integer;
var
  TZInfo: TTimeZoneInformation;
begin
   case GetTimeZoneInformation(TZInfo) of
     TIME_ZONE_ID_UNKNOWN:
       Result := TZInfo.Bias;
     TIME_ZONE_ID_STANDARD:
       Result := TZInfo.Bias + TZInfo.StandardBias;
     TIME_ZONE_ID_DAYLIGHT:
       Result := TZInfo.Bias + TZInfo.DaylightBias;
     else
       Result := 0;
   end;
end;

function DateToISO8601(const ADate: TDateTime; AInputIsUTC: Boolean = True): string;
const
  FmtUTC = 'yyyy"-"mm"-"dd"T"hh":"nn":"ss"."zzz';
  FmtOffset: string = '%.02d:%.02d';
  Sign: array[Boolean] of Char = ('+', '-');
var
  Offset: Integer;
begin
  Result := FormatDateTime(FmtUTC, ADate);
  Offset := GetLocalTimeOffset;
  if AInputIsUTC or (Offset=0) then
    Result:=Result+'Z'
  else
    begin
    Result:=Result+Sign[Offset>0];
    Offset := Abs(Offset);
    Result:= Result+Format(FmtOffset, [Offset div MinsPerHour, Offset mod MinsPerHour]);
    end;
end;
0

Przepraszam za zamieszanie rzeczywiście przyjmuje format

<DataWytworzeniaFa>2024-01-26T20:02:45Z</DataWytworzeniaFa>

nie zauważyłem że miałem wpliku

<DataWytworzeniaFA>2024-01-26T20:02:45Z</DataWytworzeniaFA>

czyli FA zamiast Fa.
pozdrawiam
P.

1 użytkowników online, w tym zalogowanych: 0, gości: 1