ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Konversikan nilai waktu menjadi string dan sesuaikan untuk pengaturan zona waktu lokal. Fungsi-fungsi ini adalah versi ctime, _ctime64, _wctime, _wctime64 dengan peningkatan keamanan seperti yang dijelaskan dalam Fitur keamanan di CRT.

Sintaks

errno_t ctime_s(
   char* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _ctime32_s(
   char* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _ctime64_s(
   char* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime )
;
errno_t _wctime_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _wctime32_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _wctime64_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
   char (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
   char (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
   wchar_t (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
   wchar_t (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only

Parameter

buffer
Harus cukup besar untuk menampung 26 karakter. Penunjuk ke hasil string karakter, atau NULL jika:

  • sourceTime menunjukkan tanggal sebelum tengah malam, 1 Januari 1970, UTC.

  • Jika Anda menggunakan _ctime32_s atau _wctime32_s dan sourceTime menunjukkan tanggal setelah 23:59:59 18 Januari 2038, UTC.

  • Jika Anda menggunakan _ctime64_s atau _wctime64_s dan sourceTime mewakili tanggal setelah 23:59:59, 31 Desember 3000, UTC.

  • Jika Anda menggunakan _ctime_s atau _wctime_s, fungsi-fungsi ini adalah pembungkus ke fungsi sebelumnya. Lihat bagian Keterangan.

numberOfElements
Ukuran buffer.

sourceTime
Penunjuk ke waktu tersimpan.

Nilai hasil

Nol jika berhasil. Jika ada kegagalan karena parameter yang tidak valid, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, kode kesalahan dikembalikan. Kode kesalahan didefinisikan dalam ERRNO. H; untuk daftar kesalahan ini, lihat errno. Kode kesalahan aktual yang dilemparkan untuk setiap kondisi kesalahan diperlihatkan dalam tabel berikut.

Kondisi kesalahan

buffer numberOfElements sourceTime Tampilkan Nilai dalam buffer
NULL any any EINVAL Tidak dimodifikasi
Bukan NULL (menunjuk ke memori yang valid) 0 any EINVAL Tidak dimodifikasi
Tidak NULL 0< ukuran < 26 any EINVAL String kosong
Tidak NULL >= 26 NULL EINVAL String kosong
Tidak NULL >= 26 < 0 EINVAL String kosong

Keterangan

Fungsi ini ctime_s mengonversi nilai waktu yang disimpan sebagai time_t struktur menjadi string karakter. Nilai sourceTime biasanya diperoleh dari panggilan ke time, yang mengembalikan jumlah detik yang berlalu sejak tengah malam (00:00:00), 1 Januari 1970, waktu universal terkoordinasi (UTC). String nilai yang dikembalikan berisi tepat 26 karakter dan memiliki formulir:

Wed Jan 2 02:03:55 1980\n\0

Jam 24 jam digunakan. Semua bidang memiliki lebar konstanta. Karakter baris baru ('\n') dan karakter null ('\0') menempati dua posisi terakhir string.

String karakter yang dikonversi juga disesuaikan sesuai dengan pengaturan zona waktu lokal. Untuk informasi tentang mengonfigurasi waktu lokal, lihat timefungsi , _ftime, dan localtime . Untuk detail tentang menentukan lingkungan zona waktu dan variabel global, lihat fungsinya _tzset .

_wctime32_s dan _wctime64_s merupakan versi karakter lebar dari _ctime32_s dan _ctime64_s; mengembalikan penunjuk ke string karakter lebar. Jika tidak, _ctime64_s, , dan _wctime64_s berulah identik dengan _ctime32_s_wctime32_s.

ctime_s adalah fungsi sebaris yang mengevaluasi dan _ctime64_stime_t setara dengan __time64_t. Jika Anda perlu memaksa pengkompilasi untuk menafsirkan time_t sebagai 32-bit time_tlama, Anda dapat menentukan _USE_32BIT_TIME_T. Makro ini menyebabkan ctime_s evaluasi ke _ctime32_s. Kami tidak merekomendasikannya, karena aplikasi Anda mungkin gagal setelah 18 Januari 2038, dan tidak diizinkan pada platform 64-bit.

Di C++, menggunakan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat; kelebihan beban dapat menyimpulkan panjang buffer secara otomatis, menghilangkan kebutuhan untuk menentukan argumen ukuran. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.

Versi pustaka debug dari fungsi-fungsi ini terlebih dahulu mengisi buffer dengan 0xFE. Untuk menonaktifkan perilaku ini, gunakan _CrtSetDebugFillThreshold.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Pemetaan rutin teks generik

TCHAR. Rutinitas H _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tctime_s ctime_s ctime_s _wctime_s
_tctime32_s _ctime32_s _ctime32_s _wctime32_s
_tctime64_s _ctime64_s _ctime64_s _wctime64_s

Persyaratan

Rutin Header yang diperlukan
ctime_s, _ctime32_s, _ctime64_s <time.h>
_wctime_s, _wctime32_s, _wctime64_s <time.h> atau <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Pustaka

Semua versi pustaka run-time C.

Contoh

// crt_wctime_s.c
// This program gets the current
// time in time_t form and then uses _wctime_s to
// display the time in string form.

#include <time.h>
#include <stdio.h>

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}
The time is Fri Apr 25 13:03:39 2003

Baca juga

Manajemen waktu
asctime_s, _wasctime_s
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime_s, _localtime32_s, _localtime64_s
time, _time32, _time64