Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

Tôi đang thêm chuỗi thời gian UTC vào các phản hồi API Bitbucket hiện chỉ chứa chuỗi thời gian của Amsterdam (!). Để thống nhất với các chuỗi thời gian UTC được trả lại ở nơi khác, định dạng mong muốn là

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
1 (tiếp theo là
datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
2, nhưng đó không phải là nguyên nhân).

Cách tốt nhất để tạo một chuỗi như vậy (không có thành phần microsecond) từ một thể hiện

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
3 với thành phần microsecond?

>>> import datetime
>>> print unicode(datetime.datetime.now())
2011-11-03 11:13:39.278026

Tôi sẽ thêm tùy chọn tốt nhất xảy ra với tôi như một câu trả lời có thể, nhưng cũng có thể có một giải pháp thanh lịch hơn.

EDIT: Tôi nên đề cập rằng tôi không thực sự in thời gian hiện tại - Tôi đã sử dụng

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
4 để cung cấp một ví dụ nhanh. Vì vậy, giải pháp không nên cho rằng bất kỳ trường hợp
datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
3 nào mà nó nhận được sẽ bao gồm các thành phần microsecond.
I should mention that I'm not actually printing the current time – I used
datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
4 to provide a quick example. So the solution should not assume that any
datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
3 instances it receives will include microsecond components.

Đã hỏi ngày 3 tháng 11 năm 2011 lúc 18:18Nov 3, 2011 at 18:18

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

Davidchambersdavidchambersdavidchambers

23.3K16 Huy hiệu vàng74 Huy hiệu bạc102 Huy hiệu đồng16 gold badges74 silver badges102 bronze badges

0

Nếu bạn muốn định dạng một đối tượng

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
3 ở một định dạng cụ thể khác với định dạng tiêu chuẩn, tốt nhất là chỉ định rõ ràng định dạng đó:

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'

Xem tài liệu của

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
7 để biết giải thích về các chỉ thị
datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
8.

Bắt đầu từ Python 3.6, phương pháp

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
9 đủ linh hoạt để tạo ra định dạng này:

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")

Đã trả lời ngày 3 tháng 11 năm 2011 lúc 18:22Nov 3, 2011 at 18:22

Sven Marnachsven MarnachSven Marnach

550K114 Huy hiệu vàng920 Huy hiệu bạc822 Huy hiệu Đồng114 gold badges920 silver badges822 bronze badges

16

>>> import datetime
>>> now = datetime.datetime.now()
>>> print unicode(now.replace(microsecond=0))
2011-11-03 11:19:07

Đã trả lời ngày 3 tháng 11 năm 2011 lúc 18:19Nov 3, 2011 at 18:19

Davidchambersdavidchambersdavidchambers

23.3K16 Huy hiệu vàng74 Huy hiệu bạc102 Huy hiệu đồng16 gold badges74 silver badges102 bronze badges

6

Nếu bạn muốn định dạng một đối tượng

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
3 ở một định dạng cụ thể khác với định dạng tiêu chuẩn, tốt nhất là chỉ định rõ ràng định dạng đó:

import datetime
datetime.datetime.now().replace(microsecond=0).isoformat()
# Returns: '2017-01-23T14:58:07'

Xem tài liệu của

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
7 để biết giải thích về các chỉ thị
datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
8.

datetime.datetime.now().replace(microsecond=0).isoformat(' ')
# Returns: '2017-01-23 15:05:27'

Bắt đầu từ Python 3.6, phương pháp

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
9 đủ linh hoạt để tạo ra định dạng này:Jan 23, 2017 at 20:06

Đã trả lời ngày 3 tháng 11 năm 2011 lúc 18:22radtek

Sven Marnachsven Marnach11 gold badges139 silver badges110 bronze badges

5

550K114 Huy hiệu vàng920 Huy hiệu bạc822 Huy hiệu Đồng

>>> import time
>>> time.strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 11:31:28'

Đã trả lời ngày 3 tháng 11 năm 2011 lúc 18:19

>>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
'2011-11-03 18:32:20'

Đây là cách tôi làm điều đó. Định dạng ISO:Nov 3, 2011 at 18:32

Bạn có thể thay thế 'T' nếu bạn không muốn định dạng ISO:Andrew Clark

Đã trả lời ngày 23 tháng 1 năm 2017 lúc 20:0633 gold badges268 silver badges298 bronze badges

1

Radtekradtek

>>> str(datetime.datetime.now())[:19]
'2011-11-03 14:37:50'

32.6K11 Huy hiệu vàng139 Huy hiệu bạc110 Huy hiệu đồngNov 3, 2011 at 18:38

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

Một lựa chọn khác:Steven Rumbalski

Theo mặc định, điều này sử dụng thời gian địa phương, nếu bạn cần UTC, bạn có thể sử dụng các mục sau:8 gold badges86 silver badges117 bronze badges

4

Đã trả lời ngày 3 tháng 11 năm 2011 lúc 18:32

import datetime
now = datetime.datetime.now()
now = now.replace(microsecond=0)  # To print now without microsecond.

# To print now:
print(now)

output:

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
0

Andrew Clarkandrew ClarkJan 13, 2019 at 13:47

An0nAn0nAn0n

197K33 Huy hiệu vàng268 Huy hiệu bạc298 Huy hiệu Đồng6 silver badges17 bronze badges

Giữ 19 ký tự đầu tiên mà bạn muốn thông qua việc cắt lát:

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
1

Đã trả lời ngày 3 tháng 11 năm 2011 lúc 18:38Nov 3, 2011 at 19:35

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

Steven Rumbalskisteven Rumbalski

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
2

Usage:

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
3

43.5K8 Huy hiệu vàng86 Huy hiệu bạc117 Huy hiệu đồngOct 16, 2020 at 22:41

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

Tôi thường làm:craymichael

Đã trả lời ngày 13 tháng 1 năm 2019 lúc 13:471 gold badge14 silver badges24 bronze badges

6556 Huy hiệu bạc17 Huy hiệu đồng

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
4

Vì không phải tất cả các trường hợp

>>> import datetime
>>> now = datetime.datetime.now()
>>> print unicode(now.replace(microsecond=0))
2011-11-03 11:19:07
0 đều có thành phần microsecond (nghĩa là khi nó bằng không), bạn có thể phân vùng chuỗi trên "." và chỉ lấy vật phẩm đầu tiên, sẽ luôn hoạt động:Feb 1, 2018 at 9:34

4

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
5

Đã trả lời ngày 3 tháng 11 năm 2011 lúc 19:35Feb 5, 2021 at 2:13

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

0

Kể từ Python 3.6+, cách tốt nhất để làm điều này là đối số

>>> import datetime
>>> now = datetime.datetime.now()
>>> print unicode(now.replace(microsecond=0))
2011-11-03 11:19:07
1 mới cho
>>> import datetime
>>> now = datetime.datetime.now()
>>> print unicode(now.replace(microsecond=0))
2011-11-03 11:19:07
2.

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
6

Đã trả lời ngày 16 tháng 10 năm 2020 lúc 22:41Dec 1, 2021 at 14:14

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

Craymichaelcraymichaelcodeye

4.3871 Huy hiệu vàng14 Huy hiệu bạc24 Huy hiệu đồng5 silver badges6 bronze badges

Chúng ta có thể thử một cái gì đó như bên dưới

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
7

Đã trả lời ngày 1 tháng 2 năm 2018 lúc 9:34Sep 16, 2019 at 13:36

1

Đã trả lời ngày 5 tháng 2 năm 2021 lúc 2:13

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
8

Định dạng F-StringNov 30, 2018 at 11:52

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

1

Đã trả lời ngày 1 tháng 12 năm 2021 lúc 14:14

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
9

codeYecodeyeAug 18, 2021 at 8:49

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

5545 Huy hiệu bạc6 Huy hiệu Đồng

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
0

Điều này tôi sử dụng bởi vì tôi có thể hiểu và do đó nhớ nó tốt hơn (và định dạng thời gian ngày cũng có thể được tùy chỉnh dựa trên sự lựa chọn của bạn):-Aug 12, 2021 at 16:21

Hướng dẫn remove microseconds from datetime python - xóa micro giây khỏi datetime python

1