Я просмотрел эту статью в Википедии для ссылки на то, как работает ISO-8601. Я не эксперт по какао, но я уверен, что если вы сможете разобрать эту строку и извлечь компонент час, минуту, секунду, день и т. Д., То получить его в NSTimeInterval должно быть легко. Сложная часть разбирает его. Я бы сделал это примерно так:
Сначала разделите строку на две отдельные строки: одну, представляющую дни, и одну, представляющую время. NSString имеет компонент метода экземпляраSeparatedByString: NSString, который возвращает NSArray подстрок вашего исходного NSString, разделенных параметром, который вы передаете. Он будет выглядеть примерно так:
NSString * iso8601 = / * Однако вы получаете свою строку в * / NSArray * iso8601Parts = [iso8601 componentsSeparatedByString: @ "T"];
Затем выполните поиск первого элемента iso8601Parts для каждого из возможных индикаторов продолжительности дня (Y, M, W и D). Когда вы найдете его, возьмите все предыдущие цифры (и, возможно, десятичную точку), отбросьте их к плавающей точке и сохраните их где-нибудь. Помните, что если бы существовал только элемент времени, то iso8601Parts [0] будет пустой строкой.
Затем сделайте то же самое, ищите временные части во втором элементе iso8601Parts для возможных индикаторов времени (H , МИЗ). Помните, что если бы существовал только компонент дня (т. Е. В исходной строке не было символа «T»), то iso8601Parts будет иметь длину только один, а попытка доступа к второму элементу вызовет исключение из-за пределов .
NSTimeInterval - это просто длительное хранение нескольких секунд, поэтому конвертируйте отдельные фрагменты, которые вы вытащили за секунды, добавьте их вместе, сохраните их в своем NSTimeInterval, и вы настроены.
Извините, я знаю, что вы попросили «простой» способ сделать это, но, основываясь на моем (по общему признанию) поиске и знании API, это самый простой способ сделать это.
У меня была эта точная проблема в последнее время и использовалась
apt-get install python-numpy
. Это добавляет numpy в ваш системный интерпретатор python. Возможно, мне пришлось сделать то же самое для matplotlib. Для использования в virtualenv вам необходимо создать свою среду, используя опцию
--system-site-packages
Сброс моих региональных настроек на моем компьютере до ожидаемого решения моей проблемы. Для меня проблема началась, когда я переключил языковые настройки на английский (Индия). Мне пришлось переключить его на английский (Великобритания).
Если вам нужна версия numpy numpy, вы можете создать зависимости для пакета, а затем установить его с помощью pip
sudo apt-get build-dep python-numpy
pip install numpy
. Для установки пакета необходимо установить все необходимое на системном уровне.
Я встретил подобную проблему. Я попытался:
export LC_ALL=C
pip install --upgrade setuptools
Но это не решило проблему, но возникла другая ошибка:
AttributeError: объект 'str' не имеет атрибута 'rollback'
blockquote>Затем я попытался:
pip install -U pip
Тогда проблема была решена.
Недавно я наткнулся на ту же проблему. Это разрешило это для меня:
echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
echo 'export LANGUAGE=en_US:en' >> ~/.bashrc
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bashrc
sudo apt-get install language-pack-en
Примечание.
У меня уже установлены python-numpy и python-dev. Даже это может вызвать проблемы в вашей системе. Вы также можете экспортировать LC_ALL = C вместо en_US.UTF-8 (или любой другой язык)
При запуске в контейнере докера это исправлено для меня (в проекте django-postgrespool, но это также должно работать здесь).
# Set the locale
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
locale-gen
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
Так много ответов, и никто не работал для меня, хотя некоторые из них явно работали для других людей. Но я тогда выяснил, в чем была моя проблема, поэтому я просто добавлю его в коллекцию:
dpkg-reconfigure locales
# enable the "en-US.UTF-8" locale
# when asked for a default, no need to define one
Дело в том, что я работал в контейнере Linux Debian Stretch, у которого не было никаких Установлены локали UTF-8, возможно, потому, что я загрузил минимальное изображение запаса. Теперь, когда этот локаль UTF-8 установлен, установите правильно установленный numpy и другие пакеты.
Для меня это было решено путем игнорирования (предположительно) поврежденного кеша с
pip install --no-cache-dir ...
, как описано здесь: https://github.com/pypa/pip/issues/2674
У меня была проблема с пакетом matplotlib. Мне пришлось выполнить:
export LC_ALL=C
pip install --upgrade setuptools
Для меня комментарий @Charles Duffy решил. Поместите это в свой env:
LC_ALL=C
Вы можете добавить его в свой .bashrc с помощью строки, подобной этой:
export LC_ALL=C
Но будьте осторожны, чтобы повлиять на все другие программы. Поэтому вы можете использовать его только для запуска pip:
$ LC_ALL=C pip install ...
--system-site-packages
не было для меня вариантом.
– moi
11 August 2015 в 13:16
--system-site-packages
было неправильным ответом. Я получил его для работы внутри virtualenv с LC_ALL=C pip install ...
.
– Arjun
19 September 2016 в 16:55
Пользователи @OSX: добавьте следующие строки к вашим ~/.profile
или ~/.bashrc
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
Выполните сценарии, используя source ~/.profile
или source ~/.bashrc
В моем случае я только что установил Python из источника (на удаленном компьютере, где я не sudo
). По какой-то причине, pip
был на какой-то действительно старой версии. Итак, после:
python -m pip install --upgrade pip
мне удалось установить numpy
и все, что я хотел, без проблем.
Была аналогичная проблема на Jetson TK1 с Ubuntu.
Работает отлично с apt-get install python-pandas
У меня была аналогичная ошибка при запуске pip install pandas
, и это было связано с нехваткой памяти. Я увеличил память на своей виртуальной машине до 4G и зафиксировал ее.
попробуйте sudo apt-get install python-numpy
. Это сработало для меня, и оно может быть использовано для scipy, pandas и т. Д., Заменив их вместо numpy. (Y),
В каталоге «site-packages» make «sitecustomize.py», как это
import sys
sys.setdefaultencoding("utf-8")
Теперь вы можете получить файл «pip.log»
Комбинация
sudo apt-get install python-dev
и
export LC_ALL=C
pip install --upgrade setuptools
решила мою проблему.
virtualenv
, вы можете изменить существующий с помощьюvirtualenv VIRTUALENV_DIR --system-site-packages
. – fiatjaf 6 December 2014 в 04:09sudo apt-get install python2.7-dev
решил проблему. – baltasvejas 25 May 2015 в 16:31