Преобразовать байты в строку?

Преобразование строки локального часового пояса в строку 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);
  • NZDT: UTC + 13: 00, если $ datetime = "2016-02-01 00:00:01", $ output = "2016-01-31 11:00:01" ; если $ datetime = "2016-02-29 23:59:59", $ output = "2016-02-29 10:59:59";
  • NZST: UTC + 12: 00, если $ datetime = "2016-05-01 00:00:01", $ output = "2016-04-30 12:00:01"; если $ datetime = "2016-05-31 23:59:59", $ output = "2016-05-31 11:59:59";

https: / /en.wikipedia.org/wiki/Time_in_New_Zealand

1764
задан martineau 1 November 2017 в 19:28
поделиться

3 ответа

Необходимо декодировать объект байтов произвести строку:

>>> 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'
3041
ответ дан Aaron Maenpaa 28 September 2019 в 20:52
поделиться
  • 1
    Где я должен включать этот css., так как моя основная страница, также являющаяся, затронута, если я вставляю в ту же страницу. Где вставить этот css и как получить доступ к нему. – Mohan Ram 13 December 2010 в 09:40

Необходимо декодировать строку байтов и возвратить ее к символу (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)
170
ответ дан Peter Mortensen 28 September 2019 в 20:52
поделиться

Для Вашего конкретный случай "выполненного команда оболочки и получает свой вывод как текст вместо байтов", на 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

0
ответ дан 22 November 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: