Độ lệch UTC strftime của Python

Hàm strftime[] sẽ đặt các byte vào mảng được trỏ tới bởi s như được điều khiển bởi chuỗi được trỏ tới bởi định dạng. Định dạng là một chuỗi ký tự, bắt đầu và kết thúc ở trạng thái dịch chuyển ban đầu của nó, nếu có. Chuỗi định dạng bao gồm 0 hoặc nhiều thông số kỹ thuật chuyển đổi và các ký tự thông thường. Thông số kỹ thuật chuyển đổi bao gồm ký tự '%', có thể được theo sau bởi công cụ sửa đổi E hoặc O và ký tự chỉ định chuyển đổi kết thúc xác định hành vi của thông số kỹ thuật chuyển đổi. Tất cả các ký tự thông thường [bao gồm cả byte null kết thúc] được sao chép không thay đổi vào mảng. Nếu việc sao chép diễn ra giữa các đối tượng chồng chéo, hành vi không được xác định. Không nhiều hơn byte kích thước tối đa được đặt vào mảng. Mỗi công cụ xác định chuyển đổi được thay thế bằng các ký tự thích hợp như được mô tả trong danh sách sau. Các ký tự thích hợp được xác định bằng cách sử dụng danh mục LC_TIME của ngôn ngữ hiện tại và bằng các giá trị bằng 0 hoặc nhiều thành phần của cấu trúc thời gian chia nhỏ được chỉ định bởi timeptr, như được chỉ định trong ngoặc trong phần mô tả. Nếu bất kỳ giá trị nào được chỉ định nằm ngoài phạm vi bình thường, các ký tự được lưu trữ sẽ không được chỉ định

[CX]

Thông tin múi giờ địa phương được sử dụng như thể strftime[] được gọi là tzset[].

Các thông số kỹ thuật chuyển đổi sau đây được hỗ trợ

%aĐược thay thế bằng tên ngày trong tuần viết tắt của ngôn ngữ. [ tm_wday]%AĐược thay thế bằng tên ngày trong tuần đầy đủ của ngôn ngữ. [ tm_wday]%bĐược thay thế bằng tên tháng viết tắt của ngôn ngữ. [ tm_mon]%BĐược thay thế bằng tên tháng đầy đủ của ngôn ngữ. [ tm_mon]%cĐược thay thế bằng biểu thị ngày và giờ thích hợp của ngôn ngữ. [Xem tập Định nghĩa cơ sở của IEEE Std 1003. 1-2001,. ]%CĐược thay thế bằng năm chia cho 100 và cắt ngắn thành số nguyên, dưới dạng số thập phân [00,99]. [ tm_year]%dĐược thay thế bằng ngày trong tháng dưới dạng số thập phân [01,31]. [ tm_mday]%DEtương đương với %m / %d / %y. [ tm_mon, tm_mday, tm_year]%eĐược thay thế bằng ngày trong tháng dưới dạng số thập phân [1,31]; . [ tm_mday]%FEtương đương với %Y - %m - %d [ISO 8601. định dạng ngày chuẩn 2000]. [ tm_year, tm_mon, tm_mday]%gĐược thay thế bằng 2 chữ số cuối của năm tính theo tuần [xem bên dưới] dưới dạng số thập phân [00,99]. [ tm_year, tm_wday, tm_yday]%GĐược thay thế bằng năm tính theo tuần [xem bên dưới] dưới dạng số thập phân [ví dụ: 1977]. [ tm_year, tm_wday, tm_yday]%hTương đương với %b. [ tm_mon]%HĐược thay thế bằng giờ [đồng hồ 24 giờ] dưới dạng số thập phân [00,23]. [ tm_hour]%IĐược thay thế bằng giờ [đồng hồ 12 giờ] dưới dạng số thập phân [01,12]. [ tm_hour]%jĐược thay thế bằng ngày trong năm dưới dạng số thập phân [001,366]. [ tm_yday]%mĐược thay thế bằng tháng dưới dạng số thập phân [01,12]. [ tm_mon]%MRĐược thay thế theo phút dưới dạng số thập phân [00,59]. [ tm_min]%nĐược thay thế bởi a. %pĐược thay thế bằng ngôn ngữ tương đương với một trong hai. m. hoặc p. m. [ tm_hour]%rĐược thay thế bởi thời gian trong một. m. và P. m. ký hiệu; . %M. %S %p.
 trong ngôn ngữ POSIX, giá trị này sẽ tương đương với %I. %M. %S %p.
[ tm_hour, tm_min, tm_sec]%RRĐược thay thế bằng thời gian trong ký hiệu 24 giờ [ %H. %M ]. [ tm_hour, tm_min]%SĐược thay thế bởi giây dưới dạng số thập phân [00,60]. [ tm_sec]%tĐược thay thế bởi a. %TĐược thay thế theo thời gian [ %H. %M. %S ]. [ tm_hour, tm_min, tm_sec]%uĐược thay thế bằng ngày trong tuần dưới dạng số thập phân [1,7], với 1 đại diện cho Thứ Hai. [ tm_wday]%URĐược thay thế bởi số tuần của năm dưới dạng số thập phân [00,53]. Chủ nhật đầu tiên của tháng 1 là ngày đầu tiên của tuần 1; . [ tm_year, tm_wday, tm_yday]%VĐược thay thế bằng số tuần của năm [thứ Hai là ngày đầu tiên của tuần] dưới dạng số thập phân [01,53]. Nếu tuần chứa ngày 1 tháng 1 có bốn ngày trở lên trong năm mới thì được coi là tuần 1. Nếu không, đó là tuần cuối cùng của năm trước và tuần tiếp theo là tuần 1. Cả ngày 4 tháng 1 và ngày thứ Năm đầu tiên của tháng 1 luôn nằm trong tuần 1. [ tm_year, tm_wday, tm_yday]%wĐược thay thế bằng ngày trong tuần dưới dạng số thập phân [0,6], với 0 đại diện cho Chủ nhật. [ tm_wday]%WĐược thay thế bằng số tuần của năm dưới dạng số thập phân [00,53]. Thứ Hai đầu tiên của tháng Giêng là ngày đầu tiên của tuần 1; . [ tm_year, tm_wday, tm_yday]%xĐược thay thế bằng biểu thị ngày thích hợp của ngôn ngữ. [Xem tập Định nghĩa cơ sở của IEEE Std 1003. 1-2001,. ]%XĐược thay thế bởi biểu diễn thời gian thích hợp của ngôn ngữ. [Xem tập Định nghĩa cơ sở của IEEE Std 1003. 1-2001,. ]%yĐược thay thế bằng hai chữ số cuối của năm dưới dạng số thập phân [00,99]. [ tm_year]%YĐược thay thế bằng năm dưới dạng số thập phân [ví dụ: 1997]. [ tm_year]%zĐược thay thế bằng phần bù từ UTC trong ISO 8601. 2000 định dạng chuẩn [ +hh mm hoặc -hmm ] hoặc không có ký tự nếu không xác định được múi giờ. Ví dụ: "-0430" có nghĩa là 4 giờ 30 phút sau UTC [phía tây Greenwich]. [CX]
 Nếu tm_isdst bằng 0, thời gian bù tiêu chuẩn được sử dụng. Nếu tm_isdst lớn hơn 0, thì thời gian tiết kiệm ánh sáng ban ngày được sử dụng. Nếu tm_isdst là số âm, không có ký tự nào được trả về.
[ tm_isdst]%ZĐược thay thế bằng tên múi giờ hoặc chữ viết tắt hoặc không có byte nếu không có thông tin múi giờ. [ tm_isdst]%%Được thay thế bởi %.

Nếu thông số kỹ thuật chuyển đổi không tương ứng với bất kỳ điều nào ở trên, thì hành vi đó không được xác định

[CX]

Nếu cấu trúc thời gian chia nhỏ struct tm được tạo bởi localtime[] hoặc localtime_r[] hoặc được sửa đổi bởi mktime[] và giá trị của TZ là .

Nếu cấu trúc thời gian chia nhỏ struct tm được tạo hoặc sửa đổi bởi gmtime[] hoặc gmtime_r[], thì không xác định được liệu kết quả của các trình xác định chuyển đổi %Z và %z có tham chiếu đến UTC hoặc múi giờ địa phương hiện tại hay không, khi strftime[ .

Công cụ xác định chuyển đổi đã sửa đổi

Một số chỉ định chuyển đổi có thể được sửa đổi bằng các ký tự bổ trợ E hoặc O để chỉ ra rằng nên sử dụng một định dạng hoặc thông số kỹ thuật thay thế thay vì định dạng hoặc thông số kỹ thuật thường được sử dụng bởi chỉ định chuyển đổi chưa sửa đổi. Nếu định dạng hoặc thông số kỹ thuật thay thế không tồn tại cho ngôn ngữ hiện tại [xem ERA trong tập Định nghĩa cơ sở của IEEE Std 1003. 1-2001, ], hành vi sẽ như thể thông số kỹ thuật chuyển đổi chưa sửa đổi đã được sử dụng

%EcĐược thay thế bởi biểu diễn ngày và giờ thích hợp thay thế của ngôn ngữ. %ECĐược thay thế bằng tên của năm cơ sở [thời kỳ] trong biểu diễn thay thế của ngôn ngữ. %ExReplaced bởi đại diện ngày thay thế của ngôn ngữ. %EXĐược thay thế bởi biểu diễn thời gian thay thế của ngôn ngữ. %EyĐược thay thế bằng phần bù từ %EC [chỉ năm] trong biểu diễn thay thế của ngôn ngữ. %EYĐược thay thế bằng đại diện năm thay thế đầy đủ. %OdĐược thay thế bằng ngày trong tháng, sử dụng các ký hiệu số thay thế của ngôn ngữ, được điền nếu cần với các số 0 đứng đầu nếu có bất kỳ ký hiệu thay thế nào cho số 0; . %OeĐược thay thế bằng ngày trong tháng, sử dụng các ký hiệu số thay thế của ngôn ngữ, được điền vào nếu cần với khoảng trắng ở đầu. %OHĐược thay thế theo giờ [đồng hồ 24 giờ] bằng các ký hiệu số thay thế của ngôn ngữ. %OIĐược thay thế theo giờ [đồng hồ 12 giờ] bằng các ký hiệu số thay thế của ngôn ngữ. %OmĐược thay thế theo tháng bằng cách sử dụng các ký hiệu số thay thế của ngôn ngữ. %OMĐược thay thế bằng phút bằng các ký hiệu số thay thế của ngôn ngữ. %OSĐược thay thế bằng giây bằng các ký hiệu số thay thế của ngôn ngữ. %OuĐược thay thế bởi ngày trong tuần dưới dạng số trong biểu diễn thay thế của ngôn ngữ [Thứ hai=1]. %OURĐược thay thế bằng số tuần của năm [Chủ nhật là ngày đầu tiên của tuần, các quy tắc tương ứng với %U ] bằng cách sử dụng các ký hiệu số thay thế của ngôn ngữ. %OVĐược thay thế bằng số tuần của năm [Thứ Hai là ngày đầu tiên của tuần, quy tắc tương ứng với %V ] bằng cách sử dụng các ký hiệu số thay thế của ngôn ngữ. %OwĐược thay thế bằng số của ngày trong tuần [Chủ nhật=0] bằng cách sử dụng các ký hiệu số thay thế của ngôn ngữ. %Được thay thế bằng số tuần của năm [Thứ Hai là ngày đầu tiên của tuần] bằng cách sử dụng các ký hiệu số thay thế của ngôn ngữ. %OyĐược thay thế theo năm [bù trừ từ %C ] bằng cách sử dụng các ký hiệu số thay thế của ngôn ngữ

%g, %G và %V đưa ra các giá trị theo ISO 8601. Năm 2000 theo tuần tiêu chuẩn. Trong hệ thống này, các tuần bắt đầu vào thứ Hai và tuần 1 của năm là tuần có ngày 4 tháng 1, cũng là tuần có ngày thứ Năm đầu tiên của năm và cũng là tuần đầu tiên có ít nhất 4 ngày trong năm. . Nếu thứ Hai đầu tiên của tháng Giêng là ngày thứ 2, thứ 3 hoặc thứ 4, thì những ngày trước đó là một phần của tuần cuối cùng của năm trước; . Nếu ngày 29, 30 hoặc 31 tháng 12 là Thứ Hai, thì ngày đó và bất kỳ ngày nào tiếp theo là một phần của tuần 1 của năm tiếp theo. Do đó, vào thứ Ba ngày 30 tháng 12 năm 1997, %G được thay thế bằng 1998 và %V được thay thế bằng 01

Nếu một trình xác định chuyển đổi không phải là một trong những điều trên, hành vi không được xác định

GIÁ TRỊ TRẢ LẠI

Nếu tổng số byte kết quả bao gồm cả byte null kết thúc không nhiều hơn kích thước tối đa, strftime[] sẽ trả về số byte được đặt vào mảng được trỏ bởi s, không bao gồm byte null kết thúc. Mặt khác, 0 sẽ được trả về và nội dung của mảng không được chỉ định

LỖI

Không có lỗi nào được xác định

Các phần sau đây là thông tin

VÍ DỤ

Nhận chuỗi ngày được bản địa hóa

Ví dụ sau trước tiên đặt ngôn ngữ thành mặc định của người dùng. Thông tin ngôn ngữ sẽ được sử dụng trong các hàm nl_langinfo[] và strftime[]. Hàm nl_langinfo[] trả về chuỗi ngày được bản địa hóa chỉ định cách trình bày ngày. Hàm strftime[] lấy thông tin này và sử dụng cấu trúc tm cho các giá trị, đặt thông tin ngày và giờ vào chuỗi dữ liệu

#include 
#include 
#include 
...
struct tm *tm;
char datestring[256];
...
setlocale [LC_ALL, ""];
...
strftime [datestring, sizeof[datestring], nl_langinfo [D_T_FMT], tm];
...

ỨNG DỤNG SỬ DỤNG

Phạm vi giá trị cho %S là [00,60] thay vì [00,59] để cho phép giây nhuận không thường xuyên

Một số thông số kỹ thuật chuyển đổi là bản sao của những thông số kỹ thuật khác. Chúng được bao gồm để tương thích với nl_cxtime[] và nl_ascxtime[], đã được xuất bản trong Số 2

Các ứng dụng nên sử dụng %Y [năm 4 chữ số] thay vì %y [năm 2 chữ số]

Trong ngôn ngữ C, các công cụ sửa đổi E và O bị bỏ qua và các chuỗi thay thế cho các công cụ xác định sau là

%Ba ký tự đầu tiên của %A. %AMột trong Chủ Nhật, Thứ Hai,. , Thứ bảy. % Ba ký tự đầu tiên của %B. %BMột của tháng Giêng, tháng Hai,. , Tháng 12. %cTương đương với %a %b %e %T %Y. %pMột trong AM hoặc PM. %tương đương với %I. %M. %S %p. %xTương đương với %m / %d / %y. %XTương đương với %T. %ZImplementation-xác định

CƠ SỞ LÝ LUẬN

Không có

HƯỚNG TƯƠNG LAI

Không có

XEM THÊM

asctime[], clock[], ctime[] , difftime[], getdate[], gmtime[], localtime[], mktime[], strptime[], time[], tzset[], utime[], Định nghĩa cơ sở . 1-2001, ,

THAY ĐỔI LỊCH SỬ

Lần đầu tiên phát hành trong vấn đề 3

vấn đề 5

Mô tả của %OV được thay đổi để nhất quán với %V và xác định Thứ Hai là ngày đầu tuần

Mô tả của %Oy được làm rõ

vấn đề 6

Các tiện ích ngoài tiêu chuẩn ISO C được đánh dấu

Open Group Corrigendum U033/8 được áp dụng. Công cụ xác định chuyển đổi %V được thay đổi từ "Nếu không, đó là tuần 53 của năm trước và tuần tiếp theo là tuần 1" thành "Nếu không, đó là tuần cuối cùng của năm trước và tuần tiếp theo là tuần 1"

Các yêu cầu mới sau đây đối với việc triển khai POSIX xuất phát từ sự liên kết với Đặc tả UNIX đơn

  • Các chỉ định chuyển đổi %C, %D, %e, %h, %n, %r, %R, %t và %T được thêm vào

  • Các công cụ xác định chuyển đổi đã sửa đổi được thêm vào để thống nhất với tiện ích ngày tiêu chuẩn ISO POSIX-2

    Làm cách nào để sử dụng phần bù UTC trong Python?

    Phương thức utcoffset[] với ví dụ. Hàm utcoffset[] được sử dụng để trả về một đối tượng timedelta thể hiện sự khác biệt giữa giờ địa phương và giờ UTC. Hàm này được sử dụng trong lớp datetime của mô-đun datetime. Phạm vi của utcoffset ở đây là “ timedelta[hours=24] ”.

    Tzinfo trong Python là gì?

    tzinfo là lớp cơ sở trừu tượng . Nó không thể được khởi tạo trực tiếp. Một lớp con cụ thể phải dẫn xuất nó và thực hiện các phương thức được cung cấp bởi lớp trừu tượng này.

    Làm cách nào để xóa múi giờ khỏi datetime trong Python?

    Đối tượng DateTime với thông tin múi giờ sau đó được thao tác bằng cách sử dụng. replace[] để xóa thông tin múi giờ bằng tham số tzinfo .

    strftime trong Python là gì?

    Hàm strftime[] được dùng để chuyển đổi các đối tượng ngày và giờ thành biểu diễn chuỗi của chúng . Nó nhận một hoặc nhiều đầu vào của mã được định dạng và trả về biểu diễn chuỗi. cú pháp. strftime[định dạng] Trả về. Nó trả về biểu diễn chuỗi của đối tượng ngày hoặc giờ.

Chủ Đề