VBA Как заменить функцию чтения аргументов из предопределенного списка / файла?

Всякий раз, когда вы обращаетесь к точному моменту времени, сохраняйте время в соответствии с единым стандартом, на который не влияет дневная экономия. (GMT и UTC эквивалентны в этом отношении, но предпочтительно использовать термин UTC. Обратите внимание, что UTC также известен как Zulu или Z time.)

Если вместо этого вы решили сохранить время, используя локальное значение времени, включают местное смещение по времени от UTC, так что временная метка может быть позже интерпретирована однозначно.

В некоторых случаях вам может потребоваться сохранить время UTC и эквивалентное местное время. Часто это делается с двумя отдельными полями, но некоторые платформы поддерживают тип datetimeoffset, который может хранить оба в одном поле.

При сохранении временных меток в качестве числового значения используйте время Unix - это число целого секунд с 1970-01-01T00: 00: 00Z (исключая секунды прыжка). Если вам требуется более высокая точность, вместо этого используйте миллисекунды. Это значение всегда должно основываться на UTC без какой-либо регулировки часового пояса.

Если позже вам понадобится изменить временную метку, укажите исходный идентификатор часового пояса, чтобы вы могли определить, может ли смещение измениться с оригинальное значение записано.

При планировании будущих событий обычно предпочитается местное время вместо UTC, так как обычно это смещение изменяется. См. Ответ и сообщение в блоге.

Помните, что смещения часовых поясов не всегда являются целым числом часов (например, индийское стандартное время - UTC + 05: 30, а Непал использует UTC + 05: 45) .

Если вы используете Java, используйте java.time для Java 8 или используйте Joda Time для Java 7 или ниже. Если вы используете .NET, подумайте об использовании Noda Time. Если вы используете .NET без времени Noda, считайте, что DateTimeOffset часто является лучшим выбором, чем DateTime. Если вы используете Perl, используйте DateTime. Если вы используете Python, используйте pytz или dateutil. Если вы используете JavaScript, используйте moment.js с расширением момента времени. Если вы используете PHP> 5.2, используйте преобразования собственных часовых поясов, предоставляемые классами DateTime и DateTimeZone. Будьте осторожны при использовании.

DateTimeZone :: listAbbreviations () - см. Ответ. Чтобы поддерживать PHP в актуальных данных Olson, периодически устанавливайте пакет PECL timezonedb; см. ответ.

Если вы используете C ++, обязательно используйте библиотеку, которая использует правильно реализует базу данных часовых поясов IANA. К ним относятся cctz, ICU и библиотека «tz» Говарда Хиннанта.

Не используйте Boost для преобразования часовых поясов. Хотя его API утверждает, что поддерживает стандартные идентификаторы IANA (aka «zoneinfo»), он грубо сопоставляет их с фиксированными смещениями, не учитывая богатую историю изменений, которые каждая зона могла иметь.

(Кроме того, файл выпал из обслуживания.)

Большинство бизнес-правил используют гражданское время, а не UTC или GMT. Поэтому планируйте преобразовать метки времени UTC в локальный часовой пояс перед применением прикладной логики.

Помните, что временные зоны и смещения не являются фиксированными и могут меняться. Например, исторически США и Великобритания использовали те же даты, что и «весна вперед» и «отступать».

Однако в 2007 году США изменили даты, в которые часы меняются. Это означает, что в течение 48 недель в году разница между лондонским временем и временем в Нью-Йорке составляет 5 часов и 4 недели (3 весной, 1 осенью) - 4 часа. Помните о таких элементах в любых вычислениях, которые включают несколько зон.

Рассмотрим тип времени (фактическое время события, время трансляции, относительное время, историческое время, повторяющееся время), какие элементы (временная метка, часовой пояс смещение и имя часового пояса), необходимо сохранить для правильного поиска - см. «Типы времени» в ответ.

Хранить файлы синхронизации ОС, базы данных и приложений в синхронизации, между собой и остальным миром .

На серверах установите аппаратные часы и часы ОС в UTC, а не в локальный часовой пояс.

Независимо от предыдущей точки маркера серверный код, включая веб-сайты, должен никогда не ожидайте, что местный часовой пояс сервера будет чем-то конкретным. см. ответ.

Использовать службы NTP на всех серверах.

Если вы используете FAT32, помните, что временные метки сохраняются в локальное время, а не UTC.

При работе с повторяющиеся события (например, еженедельное ТВ-шоу), помните, что время изменяется с помощью DST и будет отличаться по часовым поясам.

Всегда запрашивать значения даты-времени как включенные в нижнюю границу, эксклюзивные ограничения сверху ( > =, & lt;).

0
задан BigBen 18 January 2019 в 11:45
поделиться

1 ответ

Вместо того, чтобы проходить по ячейкам, рассмотрите возможность использования Replace для всего столбца. Тем не менее, вам нужно перебрать элементы массива примерно так:

Sub Bowdlerize()
    Dim BadWords()
    BadWords = Array("BadWord1", "BadWord2", "BadWord3")

    Dim i As Integer
    For i = LBound(BadWords) To UBound(BadWords)
        Worksheets("MySheetName").Columns(4).Replace What:=BadWords(i), Replacement:=""
    Next i
End Sub
0
ответ дан BigBen 18 January 2019 в 11:45
поделиться
Другие вопросы по тегам:

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