Преобразование строки локального часового пояса в строку UTC. например Часовой пояс Новой Зеландии
$datetime = "2016-02-01 00:00:01";
$given = new DateTime($datetime, new DateTimeZone("Pacific/Auckland"));
$given->setTimezone(new DateTimeZone("UTC"));
$output = $given->format("Y-m-d H:i:s");
echo ($output);
Необходимо декодировать объект байтов произвести строку:
>>> b"abcde"
b'abcde'
# utf-8 is used here because it is a very common encoding, but you
# need to use the encoding your data is actually in.
>>> b"abcde".decode("utf-8")
'abcde'
Необходимо декодировать строку байтов и возвратить ее к символу (Unicode) строка.
На Python 2
encoding = 'utf-8'
'hello'.decode(encoding)
или
unicode('hello', encoding)
На Python 3
encoding = 'utf-8'
b'hello'.decode(encoding)
или
str(b'hello', encoding)
Для Вашего конкретный случай "выполненного команда оболочки и получает свой вывод как текст вместо байтов", на Python 3.7, необходимо использовать subprocess.run
, и передача в text=True
(а также capture_output=True
для получения вывода)
command_result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
command_result.stdout # is a `str` containing your program's stdout
text
раньше называлась universal_newlines
, и была изменена (хорошо, искажена) в Python 3.7. Если Вы хотите поддерживать версии Python прежде 3.7, передайте в universal_newlines=True
вместо text=True