chuyển đổi datetime sang định dạng datetime khác


0

Tôi có một tệp văn bản chứa nhiều mục nhập ngày có định dạng sau:

YYYY / MM / DD HH: MM: SS.SSS AM \ PM Bạn sẽ chuyển đổi nó sang định dạng sau như thế nào?

YYYY-MM-DD HH: MM: SS.SSS (định dạng 24 giờ) Tệp này chứa nhiều mục nhập ngày, vì vậy nó sẽ thay đổi định dạng ngày của tất cả các mục ...

Cảm ơn


Bạn có thể nhập tệp vào Excel, định dạng ngày nếu cần, sau đó xuất dưới dạng văn bản không?
Paul

Bạn nên chỉnh sửa câu hỏi của bạn để chứa một số dòng mẫu có ngày. Có thể với lô nhưng có thể dễ dàng hơn với RegEx trong PowerShell.
LotPings

Câu trả lời:


0

https://dotnetfiddle.net/ksvLh3

Kịch bản trên xử lý chuỗi DATETIME_INPUT và xử lý nó vào cửa sổ đầu ra với sự thay đổi mà bạn yêu cầu.

Để sử dụng tập lệnh:

  1. mở liên kết ở trên.
  2. dán đầu vào datetime nguồn của bạn trên dữ liệu hiện có trong hằng số DATETIME_INPUT.
  3. trang sẽ tự động tạo đầu ra trong cửa sổ bên dưới. nếu không, nhấp vào nút Run
  4. sao chép / dán kết quả từ cửa sổ bên dưới vào tệp đích.

Lưu ý: Tôi không chắc tập lệnh này sẽ thực hiện như thế nào với các bộ đầu vào lớn. Vui lòng chỉ định các yêu cầu bổ sung nếu cần (kích thước đầu vào, tần suất bạn sẽ cần để chạy quy trình này, nó có cần được tự động hóa hay một lần, v.v.)

nhập mô tả hình ảnh ở đây


0

Đã cung cấp thời gian ngày trong tệp nguồn ở vị trí cố định như trong mẫu này khi bắt đầu:

> type datetime.txt
2016/12/12 05:16:41.898 PM Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed d
2017/01/16 11:05:05.897 AM a aliquyam erat, sed diam voluptua. At vero eos et accusam et 
2017/01/25 02:07:07.457 PM no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem 
2017/05/17 05:49:08.140 PM m nonumy eirmod tempor invidunt ut labore et dolore magna aliq
2017/06/10 04:40:56.529 AM sto duo dolores et ea rebum. Stet clita kasd gubergren, no sea

Một tệp bó có thể phân tích các phần tử cho các biến và kiểm tra AM / PM, và trong trường hợp PM thêm 12 vào giờ và đặt cùng với các dấu phân cách đã thay đổi (loại bỏ AM / PM)

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
For /F "usebackq Tokens=1-8* Delims=/:. " %%A in (
  "datetime.txt"
) do If /i "%%H" equ "AM" (
  Echo %%A-%%B-%%C %%D:%%E:%%F.%%G %%I
) Else If /i "%%H" equ "PM" (
  Set /A Hr=1%%D + 12
  Echo %%A-%%B-%%C !Hr:~-2!:%%E:%%F.%%G %%I
)  Else Echo no AM/PM found

Đầu ra mẫu:

> SU_1229322.cmd
2016-12-12 17:16:41.898 Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed d
2017-01-16 11:05:05.897 a aliquyam erat, sed diam voluptua. At vero eos et accusam et
2017-01-25 14:07:07.457 no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
2017-05-17 17:49:08.140 m nonumy eirmod tempor invidunt ut labore et dolore magna aliq
2017-06-10 04:40:56.529 sto duo dolores et ea rebum. Stet clita kasd gubergren, no sea
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.