Làm thế nào để chuyển đổi chuỗi thời gian địa phương sang UTC?


308

Làm cách nào để chuyển đổi chuỗi thời gian theo thời gian cục bộ thành chuỗi trong thời gian UTC ?

Tôi chắc chắn tôi đã làm điều này trước đây, nhưng không thể tìm thấy nó và SO hy vọng sẽ giúp tôi (và những người khác) làm điều đó trong tương lai.

Làm rõ : Ví dụ: nếu tôi có 2008-09-17 14:02:00múi giờ địa phương ( +10), tôi muốn tạo một chuỗi có UTCthời gian tương đương : 2008-09-17 04:02:00.

Ngoài ra, từ http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/ , lưu ý rằng nói chung điều này là không thể như với DST và các vấn đề khác không có chuyển đổi duy nhất từ ​​giờ địa phương sang Giờ UTC.


1
Xin lưu ý rằng phương thức mktime () lấy "giờ địa phương" làm đầu vào có thể không như bạn mong đợi, tôi đã sử dụng nó và nó làm rối tung mọi thứ. Xin hãy lướt qua liên kết này
Haifeng Zhang

Câu trả lời:


288

Đầu tiên, phân tích chuỗi thành một đối tượng datetime ngây thơ. Đây là một ví dụ datetime.datetimekhông có thông tin múi giờ đính kèm. Xem tài liệu để datetime.strptimebiết thông tin về phân tích chuỗi ngày.

Sử dụng pytzmô-đun, đi kèm với một danh sách đầy đủ các múi giờ + UTC. Chỉ ra múi giờ cục bộ là gì, xây dựng một đối tượng múi giờ từ nó, và thao tác và gắn nó vào datetime ngây thơ.

Cuối cùng, sử dụng datetime.astimezone()phương thức để chuyển đổi datetime sang UTC.

Mã nguồn, sử dụng múi giờ địa phương "America / Los_Angele", cho chuỗi "2001-2-3 10:11:12":

import pytz, datetime
local = pytz.timezone ("America/Los_Angeles")
naive = datetime.datetime.strptime ("2001-2-3 10:11:12", "%Y-%m-%d %H:%M:%S")
local_dt = local.localize(naive, is_dst=None)
utc_dt = local_dt.astimezone(pytz.utc)

Từ đó, bạn có thể sử dụng strftime()phương thức để định dạng thời gian UTC khi cần:

utc_dt.strftime ("%Y-%m-%d %H:%M:%S")

7
Vui lòng chỉnh sửa câu trả lời của bạn bằng mã sau: [code] local.localize (ngây thơ) [/ code] Xem tài liệu: link Thật không may khi sử dụng đối số tzinfo của các hàm tạo datetime tiêu chuẩn '' không hoạt động '' với pytz trong nhiều múi giờ. >>> datetime (2002, 10, 27, 12, 0, 0, tzinfo = amsterdam) .strftime (fmt) '2002-10-27 12:00:00 AMT + 0020'
Sam Stoelinga

2
Rõ ràng bước "tìm ra múi giờ địa phương là gì" chứng tỏ khó hơn âm thanh (thực tế là không thể).
Jason R. Coombs

2
Sử dụng local.localize theo đề xuất của @SamStoelinga, nếu không bạn sẽ không tính đến thời gian tiết kiệm ánh sáng ban ngày.
Emil Stenström

Câu trả lời này rất hữu ích với tôi, nhưng tôi muốn chỉ ra một cạm bẫy mà tôi gặp phải. Nếu bạn cung cấp thời gian nhưng không phải ngày, bạn có thể nhận được kết quả bất ngờ. Vì vậy, hãy chắc chắn rằng bạn cung cấp một dấu thời gian đầy đủ.
Steven Mercatante


145

Hàm utcnow () của mô đun datetime có thể được sử dụng để lấy thời gian UTC hiện tại.

>>> import datetime
>>> utc_datetime = datetime.datetime.utcnow()
>>> utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2010-02-01 06:59:19'

Như liên kết được đề cập ở trên bởi Tom: http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/ nói:

UTC là múi giờ không tiết kiệm thời gian ban ngày và vẫn là múi giờ mà không thay đổi cấu hình trong quá khứ.

Luôn đo lường và lưu trữ thời gian trong UTC .

Nếu bạn cần ghi lại thời gian đã được thực hiện, hãy lưu trữ riêng biệt. Không lưu trữ thông tin giờ địa phương + múi giờ!

LƯU Ý - Nếu bất kỳ dữ liệu nào của bạn nằm trong khu vực sử dụng DST, hãy sử dụng pytzvà xem câu trả lời của John Millikin.

Nếu bạn muốn có được thời gian UTC từ một chuỗi nhất định và bạn đủ may mắn ở một khu vực trên thế giới không sử dụng DST hoặc bạn có dữ liệu chỉ được bù từ UTC mà không áp dụng DST:

-> sử dụng giờ địa phương làm cơ sở cho giá trị bù:

>>> # Obtain the UTC Offset for the current system:
>>> UTC_OFFSET_TIMEDELTA = datetime.datetime.utcnow() - datetime.datetime.now()
>>> local_datetime = datetime.datetime.strptime("2008-09-17 14:04:00", "%Y-%m-%d %H:%M:%S")
>>> result_utc_datetime = local_datetime + UTC_OFFSET_TIMEDELTA
>>> result_utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2008-09-17 04:04:00'

-> Hoặc, từ một phần bù đã biết, sử dụng datetime.timedelta ():

>>> UTC_OFFSET = 10
>>> result_utc_datetime = local_datetime - datetime.timedelta(hours=UTC_OFFSET)
>>> result_utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2008-09-17 04:04:00'

CẬP NHẬT:

Vì python 3.2 datetime.timezonecó sẵn. Bạn có thể tạo một đối tượng datetime nhận biết múi giờ bằng lệnh bên dưới:

import datetime

timezone_aware_dt = datetime.datetime.now(datetime.timezone.utc)

Nếu bạn sẵn sàng thực hiện chuyển đổi múi giờ, hãy đọc điều này:

https://medium.com/@eleroy/10-things-you-need-to-ledge-about-date-and-time-in-python-with-datetime-pytz-dateutil-timedelta-309bfbafb3f7


14
Điều đó chỉ chuyển đổi thời gian hiện tại, tôi cần phải mất bất kỳ thời gian nhất định (dưới dạng chuỗi) và chuyển đổi sang UTC.
Tom

Tôi không nghĩ nó quan trọng ở đây, nếu bạn sử dụng các giá trị bù tiêu chuẩn. local_time = utc_time + utc_offset VÀ utc_time = local_time - utc_offset.
monkut

5
Nó chỉ hoạt động với thời gian hiện tại vì dấu thời gian trong quá khứ và tương lai có thể có độ lệch UTC khác nhau do DST.
Alex B

điểm tốt ... nếu bạn phải đối phó với DST, có lẽ bạn nên sử dụng pytz như được đề cập bởi John Millikin.
monkut

1
Có một vùng đồng bằng lẻ tẻ giữa các lệnh gọi tới utcnow () và now (). Đó là một dòng mã nguy hiểm có thể dẫn đến các lỗi lạ sau này tzinfo.utcoffset() must return a whole number of minutesvà v.v.
Pavel Vlasov

62

Cảm ơn @rofly, việc chuyển đổi đầy đủ từ chuỗi sang chuỗi như sau:

time.strftime("%Y-%m-%d %H:%M:%S", 
              time.gmtime(time.mktime(time.strptime("2008-09-17 14:04:00", 
                                                    "%Y-%m-%d %H:%M:%S"))))

Tóm tắt của tôi về time/ calendarchức năng:

time.strptime
chuỗi -> tuple (không áp dụng múi giờ, do đó khớp với chuỗi)

time.mktime
tuple giờ địa phương -> giây kể từ epoch (luôn luôn là giờ địa phương)

time.gmtime
giây kể từ epoch -> tuple trong UTC

calendar.timegm
tuple trong UTC -> giây kể từ epoch

time.localtime
giây kể từ epoch -> tuple trong múi giờ địa phương


4
(always local time)dường như sai: đầu vào cho mktime () là giờ địa phương, đầu ra là giây kể từ epoch ( 1970-01-01 00:00:00 +0000 (UTC)) không phụ thuộc vào múi giờ.
jfs

3
Ngoài ra, có 50% khả năng nó thất bại trong quá trình chuyển đổi DST. Xem Vấn đề với localtime
JFS

38

Dưới đây là tóm tắt về chuyển đổi thời gian Python phổ biến.

Một số phương pháp giảm phân số của giây và được đánh dấu bằng (s) . Một công thức rõ ràng như ts = (d - epoch) / unitcó thể được sử dụng thay thế (cảm ơn jfs).

  • struct_time (UTC) → POSIX (s) :
    calendar.timegm(struct_time)
  • Naïve datetime (cục bộ) → POSIX (s) :
    calendar.timegm(stz.localize(dt, is_dst=None).utctimetuple())
    (ngoại lệ trong quá trình chuyển đổi DST, xem nhận xét từ jfs)
  • Thời gian ngây thơ (UTC) → POSIX (s) :
    calendar.timegm(dt.utctimetuple())
  • Aware datetime → POSIX (s) :
    calendar.timegm(dt.utctimetuple())
  • POSIX → struct_time (UTC, s ):
    time.gmtime(t)
    (xem nhận xét từ jfs)
  • Naïve datetime (cục bộ) → struct_time (UTC, s ):
    stz.localize(dt, is_dst=None).utctimetuple()
    (ngoại lệ trong quá trình chuyển đổi DST, xem nhận xét từ jfs)
  • Thời gian ngây thơ (UTC) → struct_time (UTC, s ):
    dt.utctimetuple()
  • Aware datetime → struct_time (UTC, s ):
    dt.utctimetuple()
  • POSIX → Naïve datetime (cục bộ):
    datetime.fromtimestamp(t, None)
    (có thể thất bại trong một số điều kiện nhất định, xem nhận xét từ jfs bên dưới)
  • struct_time (UTC) → Naïve datetime (local, s ):
    datetime.datetime(struct_time[:6], tzinfo=UTC).astimezone(tz).replace(tzinfo=None)
    (không thể biểu thị giây nhuận, xem nhận xét từ jfs)
  • Thời gian Naïve (UTC) → Thời gian Naïve (cục bộ):
    dt.replace(tzinfo=UTC).astimezone(tz).replace(tzinfo=None)
  • Aware datetime → Naïve datetime (cục bộ):
    dt.astimezone(tz).replace(tzinfo=None)
  • POSIX → datetime Naïve (UTC):
    datetime.utcfromtimestamp(t)
  • struct_time (UTC) → Naïve datetime (UTC, s ):
    datetime.datetime(*struct_time[:6])
    (không thể biểu thị giây nhuận, xem nhận xét từ jfs)
  • Naïve datetime (cục bộ) → Naïve datetime (UTC):
    stz.localize(dt, is_dst=None).astimezone(UTC).replace(tzinfo=None)
    (ngoại lệ trong quá trình chuyển đổi DST, xem nhận xét từ jfs)
  • Aware datetime → Naïve datetime (UTC):
    dt.astimezone(UTC).replace(tzinfo=None)
  • POSIX → Aware datetime:
    datetime.fromtimestamp(t, tz)
    (có thể thất bại đối với các múi giờ không pytz)
  • struct_time (UTC) → Aware datetime (s) :
    datetime.datetime(struct_time[:6], tzinfo=UTC).astimezone(tz)
    (không thể đại diện cho bước nhảy vọt giây, xem bình luận từ JFS)
  • Naïve datetime (local) → Aware datetime:
    stz.localize(dt, is_dst=None)
    (ngoại lệ trong quá trình chuyển đổi DST, xem bình luận từ jfs)
  • Thời gian Naïve (UTC) → Aware datetime:
    dt.replace(tzinfo=UTC)

Nguồn: taaviburns.ca


1
(1) fromtimestamp(t, None)có thể thất bại nếu múi giờ địa phương có độ lệch utc khác nhau tại t thư viện C không có quyền truy cập vào cơ sở dữ liệu tz trên nền tảng đã cho. Bạn có thể sử dụng tzlocal.get_localzone()để cung cấp tzdata theo cách di động. (2) fromtimestamp(t, tz)có thể thất bại đối với các múi giờ không pytz. (3) datetime(*struct_time[:6])bạn đang mất tích *. (4) timegm(), utctimetuple(), struct_timecác giải pháp dựa trên thả các phần phân đoạn của một giây. Bạn có thể sử dụng một công thức rõ ràng như: ts = (d - epoch) / unitthay vào đó.
JFS

1
(5) stz.localize(dt, is_dst=None)đưa ra một ngoại lệ cho thời gian địa phương mơ hồ hoặc không tồn tại, ví dụ, trong quá trình chuyển đổi DST. Để tránh ngoại lệ, sử dụng stz.normalize(stz.localize(dt))có thể trả về kết quả không chính xác. (6) datetime () không thể biểu thị bước nhảy vọt thứ hai. Chuyển đổi struct_timethành "giây kể từ kỷ nguyên" như một cách giải quyết đầu tiên. (7) time.gmtime(t)không giống như calendar.timegm()có thể mong đợi đầu vào không phải POSIX nếu múi giờ "đúng" được sử dụng. Sử dụng công thức rõ ràng nếu đầu vào là POSIX thay thế:gmtime = lambda t: datetime(1970,1,1, tzinfo=utc) + timedelta(seconds=t)
jfs

tôi ước nó ở trong một cái bàn, dễ đọc hơn (nó nằm trong liên kết)
MichaelChirico 16/03/18

1
@MichaelChirico, câu trả lời này nói rằng "Chúng tôi không (và sẽ không) cho phép <table>các thẻ. Xin lỗi. Đây là chủ ý và theo thiết kế. Nếu bạn cần một" bảng "nhanh và bẩn, hãy sử dụng <pre>và bố trí ASCII." Tôi không tin rằng bảng ASCII sẽ dễ đọc hơn danh sách trên.
akaihola

thật đáng tiếc bạn có upvote của tôi không ... có thể tham khảo bảng trong liên kết trong câu trả lời của bạn?
MichaelChirico

25
def local_to_utc(t):
    secs = time.mktime(t)
    return time.gmtime(secs)

def utc_to_local(t):
    secs = calendar.timegm(t)
    return time.localtime(secs)

Nguồn: http://feihonghsu.blogspot.com/2008/02/converting-from-local-time-to-utc.html

Ví dụ sử dụng từ bd808 : Nếu nguồn của bạn là một datetime.datetimeđối tượng t, hãy gọi là:

local_to_utc(t.timetuple())

5
Nếu nguồn của bạn là một đối tượng datetime.datetime t, hãy gọi là: local_to_utc (t.timetuple ())
bd808

2
.timetuple()các cuộc gọi tm_isdstđến -1; có 50% cơ hội mktime()thất bại trong quá trình chuyển đổi DST.
jfs

1
Giải pháp của Chuck mất thông tin mili giây.
Luca

21

Tôi gặp may mắn với dateutil (được khuyến nghị rộng rãi trên SO cho các câu hỏi liên quan khác):

from datetime import *
from dateutil import *
from dateutil.tz import *

# METHOD 1: Hardcode zones:
utc_zone = tz.gettz('UTC')
local_zone = tz.gettz('America/Chicago')
# METHOD 2: Auto-detect zones:
utc_zone = tz.tzutc()
local_zone = tz.tzlocal()

# Convert time string to datetime
local_time = datetime.strptime("2008-09-17 14:02:00", '%Y-%m-%d %H:%M:%S')

# Tell the datetime object that it's in local time zone since 
# datetime objects are 'naive' by default
local_time = local_time.replace(tzinfo=local_zone)
# Convert time to UTC
utc_time = local_time.astimezone(utc_zone)
# Generate UTC time string
utc_string = utc_time.strftime('%Y-%m-%d %H:%M:%S')

(Mã được lấy từ câu trả lời này để chuyển đổi chuỗi thời gian UTC sang datetime cục bộ )


dateutilcó thể thất bại trong những ngày qua nếu múi giờ địa phương có độ lệch utc khác nhau sau đó (không liên quan đến chuyển đổi DST) trên các hệ thống mà việc triển khai không sử dụng cơ sở dữ liệu múi giờ lịch sử (đặc biệt là Windows). pytz+ tzlocalcó thể được sử dụng thay thế.
jfs

@ JFSebastian- Bạn chưa từng nghe về điều đó - chúng ta có thể lấy thêm thông tin ở đâu?
Yarin

lấy máy Windows, đặt bất kỳ múi giờ nào có độ lệch utc khác nhau trong quá khứ, ví dụ: Châu Âu / Moscow. So sánh kết quả với pytz . Ngoài ra, bạn có thể kiểm tra lỗi này ngay cả trên Ubuntu mặc dù tôi không chắc chắn về cách sử dụng API chính xác trong trường hợp này.
jfs 27/12/13

Đầu ra là gì? Xin vui lòng gửi đầu ra.
not2qubit

18

Một ví dụ nữa với pytz, nhưng bao gồm localize (), đã lưu ngày của tôi.

import pytz, datetime
utc = pytz.utc
fmt = '%Y-%m-%d %H:%M:%S'
amsterdam = pytz.timezone('Europe/Amsterdam')

dt = datetime.datetime.strptime("2012-04-06 10:00:00", fmt)
am_dt = amsterdam.localize(dt)
print am_dt.astimezone(utc).strftime(fmt)
'2012-04-06 08:00:00'


7
import time

import datetime

def Local2UTC(LocalTime):

    EpochSecond = time.mktime(LocalTime.timetuple())
    utcTime = datetime.datetime.utcfromtimestamp(EpochSecond)

    return utcTime

>>> LocalTime = datetime.datetime.now()

>>> UTCTime = Local2UTC(LocalTime)

>>> LocalTime.ctime()

'Thu Feb  3 22:33:46 2011'

>>> UTCTime.ctime()

'Fri Feb  4 05:33:46 2011'

mktime(dt.timetuple())có thể thất bại trong quá trình chuyển đổi DST . Có LocalTimezonetrong các tài liệu (nó hoạt động cho định nghĩa múi giờ gần đây nhất nhưng có thể thất bại cho các ngày trước (không liên quan đến DST))
jfs

5

nếu bạn thích datetime.datetime:

dt = datetime.strptime("2008-09-17 14:04:00","%Y-%m-%d %H:%M:%S")
utc_struct_time = time.gmtime(time.mktime(dt.timetuple()))
utc_dt = datetime.fromtimestamp(time.mktime(utc_struct_time))
print dt.strftime("%Y-%m-%d %H:%M:%S")

1
Chắc chắn, nhưng tôi không thể hiểu tại sao bạn thích điều đó. Nó yêu cầu nhập thêm và 3 lần gọi chức năng nhiều hơn phiên bản của tôi ...
Tom

% Z và% z in các khoảng trắng vẫn còn.
Pavel Vlasov

2
nó không đúng Không thành công nếu múi giờ địa phương không phải là UTC. mktime()mong đợi thời gian địa phương là đầu vào. fromtimestamp()trả về giờ địa phương, không utc. Nếu bạn khắc phục nó thì hãy xem các sự cố bổ sungdateutil
jfs

5

Đơn giản

Tôi đã làm nó như thế này:

>>> utc_delta = datetime.utcnow()-datetime.now()
>>> utc_time = datetime(2008, 9, 17, 14, 2, 0) + utc_delta
>>> print(utc_time)
2008-09-17 19:01:59.999996

Fancy thực hiện

Nếu bạn muốn có được sự ưa thích, bạn có thể biến điều này thành một functor:

class to_utc():
    utc_delta = datetime.utcnow() - datetime.now()

    def __call__(cls, t):
        return t + cls.utc_delta

Kết quả:

>>> utc_converter = to_utc()
>>> print(utc_converter(datetime(2008, 9, 17, 14, 2, 0)))
2008-09-17 19:01:59.999996

5
việc này không hiệu quả đối với thời gian tiết kiệm ánh sáng ban ngày - ví dụ nếu bây giờ là mùa hè và ngày bạn chuyển đổi là vào mùa đông. và câu hỏi là về việc chuyển đổi ngày được lưu dưới dạng chuỗi ...
Tom

1
FYI. Vấn đề lớn nhất với phương pháp này (ngoài tiết kiệm ánh sáng ban ngày) là vài mili giây đồng bằng sẽ bị tắt. Tất cả các lời mời lịch của tôi sẽ hiển thị dưới 1 phút.
Nỗi nhớ.io

4

Bạn có thể làm điều đó với:

>>> from time import strftime, gmtime, localtime
>>> strftime('%H:%M:%S', gmtime()) #UTC time
>>> strftime('%H:%M:%S', localtime()) # localtime

3

Làm thế nào về -

time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(seconds))

nếu giây là Nonesau đó nó chuyển đổi thời gian cục bộ thành thời gian UTC khác chuyển đổi thời gian đã qua thành UTC.


2

Để có được tiết kiệm ánh sáng ban ngày, vv

Không có câu trả lời nào ở trên đặc biệt giúp tôi. Mã dưới đây hoạt động cho GMT.

def get_utc_from_local(date_time, local_tz=None):
    assert date_time.__class__.__name__ == 'datetime'
    if local_tz is None:
        local_tz = pytz.timezone(settings.TIME_ZONE) # Django eg, "Europe/London"
    local_time = local_tz.normalize(local_tz.localize(date_time))
    return local_time.astimezone(pytz.utc)

import pytz
from datetime import datetime

summer_11_am = datetime(2011, 7, 1, 11)
get_utc_from_local(summer_11_am)
>>>datetime.datetime(2011, 7, 1, 10, 0, tzinfo=<UTC>)

winter_11_am = datetime(2011, 11, 11, 11)
get_utc_from_local(winter_11_am)
>>>datetime.datetime(2011, 11, 11, 11, 0, tzinfo=<UTC>)

2

Sử dụng http://crsmithdev.com/arrow/

arrowObj = arrow.Arrow.strptime('2017-02-20 10:00:00', '%Y-%m-%d %H:%M:%S' , 'US/Eastern')

arrowObj.to('UTC') or arrowObj.to('local') 

Thư viện này làm cho cuộc sống dễ dàng :)


mũi tên là tuyệt vời: arrow.get (datetime.now (), 'địa phương') đến ( 'utc') ngây thơ..
SteveJ

1

Tôi tìm thấy câu trả lời tốt nhất cho một câu hỏi khác ở đây . Nó chỉ sử dụng các thư viện tích hợp python và không yêu cầu bạn nhập múi giờ cục bộ của bạn (một yêu cầu trong trường hợp của tôi)

import time
import calendar

local_time = time.strptime("2018-12-13T09:32:00.000", "%Y-%m-%dT%H:%M:%S.%f")
local_seconds = time.mktime(local_time)
utc_time = time.gmtime(local_seconds)

Tôi đang đăng lại câu trả lời ở đây vì câu hỏi này xuất hiện trong google thay vì câu hỏi được liên kết tùy thuộc vào từ khóa tìm kiếm.


1

Tôi có mã này trong một trong các dự án của tôi:

from datetime import datetime
## datetime.timezone works in newer versions of python
try:
    from datetime import timezone
    utc_tz = timezone.utc
except:
    import pytz
    utc_tz = pytz.utc

def _to_utc_date_string(ts):
    # type (Union[date,datetime]]) -> str
    """coerce datetimes to UTC (assume localtime if nothing is given)"""
    if (isinstance(ts, datetime)):
        try:
            ## in python 3.6 and higher, ts.astimezone() will assume a
            ## naive timestamp is localtime (and so do we)
            ts = ts.astimezone(utc_tz)
        except:
            ## in python 2.7 and 3.5, ts.astimezone() will fail on
            ## naive timestamps, but we'd like to assume they are
            ## localtime
            import tzlocal
            ts = tzlocal.get_localzone().localize(ts).astimezone(utc_tz)
    return ts.strftime("%Y%m%dT%H%M%SZ")

0

Trong python3:

pip install python-dateutil

from dateutil.parser import tz

mydt.astimezone(tz.gettz('UTC')).replace(tzinfo=None) 

điều này dường như không hoạt động, nó làm tăng ngoại lệ ValueError: ValueError: astimezone () không thể được áp dụng cho một thời gian ngây thơ
Stormsson

Nó sẽ là: from dateutil import tz
Javier

-3

Làm thế nào về -

time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(seconds))

nếu giây là Nonesau đó nó chuyển đổi thời gian cục bộ thành thời gian UTC khác chuyển đổi thời gian đã qua thành UTC.


1
Điều này không có ích, câu hỏi là chuyển đổi một chuỗi thời gian cục bộ thành một chuỗi utc.
Tom
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.