Nano Hash - криптовалюты, майнинг, программирование

Разбор строкового формата времени (НЕ часовые пояса)

Предполагая, что форматы времени (не данные часового пояса, а просто текстовые строки, представляющие время в 12-часовом формате), как лучше всего анализировать эти данные (примеры ниже)?

Я чувствую, что это довольно простой вопрос, но я много думал об этом и не могу найти надежный процесс для разбора значений hour и minute из любого из много временных "форматов".

Я использую простую форму, которая позволяет вводить время (например, время бронирования), но нет никакого способа сделать поле формы (Google Forms, ограниченная возможность настройки) каким-либо другим, кроме обычного текста, который допускает любое формат времени, с которым человек хочет поместить жизнеспособную часть данных для работы. Вот несколько примеров времени, которое можно ввести:

1 P        // hours would be 13, minutes would be 0
3:15 P.M.  // hours would be 15, minutes would be 15
4 P.M      // hours would be 16, minutes would be 0
8:30 a     // hours would be 8, minutes would be 30
10:45 aM.  // hours would be 10, minutes would be 45
12:00 Pm   // hours would be 12, minutes would be 0

Это всего лишь некоторые примеры. Не стесняйтесь исправлять теги, если я не в той теме (темах), однако для этого я использую Google Apps Script/Javascript.

Я подумал о создании пары строк регулярных выражений для поиска определенных форматов (написание которых, я уверен, займет у меня некоторое время, поскольку я никогда раньше не писал их).

Я также подумал о поиске символа «:» и символа «a»/«A» или «p»/«P» для определения необходимости добавления +12 часов. После получения такой информации проблема может быть решена путем усечения разделов типа «pm», а затем split(":") для получения правильных чисел.

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


  • не пытайтесь вынюхивать часы и другие подробности из дат, разбирайте все это, используя библиотеку дат, рекомендации, которым нужно следовать, я уверен. 24.06.2013
  • Вы не ограничены вводом текста; почему бы не использовать средство выбора даты/времени? stackoverflow.com/a/14393878/1677912 24.06.2013
  • @dandavis Я совершенно забыл, что могу включить библиотеку другого человека в свой проект GAS, я сейчас посмотрю, смогу ли я найти какие-либо библиотеки даты/времени. Однако я почти уверен, что не могу произвольно использовать какую-либо библиотеку Javascript с помощью службы Google. И, Могсдад, я еще не реализовал компонент GUI для этого. На самом деле, мой босс сказал, что хотел бы, чтобы все было интернализовано (встроено), а не перенаправлялось на сайт Google или что-то в этом роде (не спрашивайте меня, почему, ха-ха). Может, через месяц он придет в себя, а пока только Формы и ГАЗ. 24.06.2013
  • если вы можете запустить какой-то скрипт, вы можете запустить весь скрипт, если он не использует какое-то ограниченное подмножество js, такое как FBJS, caja, adsafe и т. д. Многие библиотеки дат небольшие, поэтому вы, вероятно, можете просто вставить код библиотеки над своим кодом, и он будет работает должным образом. 24.06.2013
  • Также жаль, что SO не перенаправил меня на этот вопрос, потому что у него та же проблема, что и у меня, и решение заключалось в анализе регулярных выражений (но я не слишком знаком с этим, так что это может быть плохой идеей). Есть ли какое-либо решение, кроме создания графического интерфейса и размещения всего содержимого формы, жестко запрограммированного на сайте Google? Сейчас я могу работать только с Google Forms, электронными таблицами и GAS =/ 24.06.2013
  • Хорошо, @dandavis, ты прав. Я взгляну на некоторые библиотеки и посмотрю, что я могу найти! 24.06.2013
  • если это форма электронной таблицы Google, вы можете создать свою собственную форму в последний раз, когда я пытался (~ 4 месяца). Если вы подделываете входные имена и значения и отправляете на тот же URL-адрес, что и форма, сгенерированная Google, они, похоже, не заботятся о реферере, поэтому внешняя отправка добавит новую строку в вашу электронную таблицу... 24.06.2013
  • Ух ты, это определенно звучит так, как будто это сработает, но я думаю, что создание сайта Google будет первой альтернативой, поскольку их интерфейс довольно прост. Итак, обновление - я просмотрел библиотеки GAS и не смог найти ничего для форматирования времени. Было много библиотек для дат, но ничего для времени не делало то, на что я надеялся. Во всяком случае, вернемся к вопросу - помимо создания сайта Google и использования инструмента пользовательского интерфейса для выбора даты / времени, есть ли способ, которым я могу проанализировать hour и miunte из этих форматов времени? Я не знаком с регулярными выражениями, но я готов попробовать, если это лучше. 24.06.2013
  • Хорошо, изучил всю идею с библиотекой и нашел кое-что действительно классное, что, по моему мнению, делает именно то, что мне нужно: Даты. Так что я буду работать с этим, спасибо за помощь, ребята, я хотел бы, чтобы SO направил меня на ссылку, которую я упомянул в одном из моих предыдущих комментариев (потому что я разместил дубликат и, что еще хуже, тот, на который уже был дан ответ). Так что я удалю этот пост завтра! Спасибо еще раз :) 24.06.2013

Ответы:


1

Я рад слышать, что у вас есть ответ, который, по вашему мнению, поможет вам. Но прежде чем писать слишком много кода, пересмотрите это утверждение, которое вы сделали:

... невозможно сделать поле формы (Google Forms, ограниченная возможность настройки) чем-либо, кроме обычного текста

Вот как вы определяете вопрос для представления средства выбора даты и времени с помощью пользовательского интерфейса форм.

Снимок экрана: форма выбора даты/времени

Электронная таблица, которая получает ответы от ваших форм, в конечном итоге будет содержать объект Date - вообще не нужно возиться со строками.

24.06.2013
  • СВЯТОЙ ФРИК. Этой функции не было буквально 2 недели назад, когда я дорабатывал свои формы. Вы, должно быть, шутите... теперь я на самом деле немного раздражен, потому что я так долго ЖДАЛ этого... Как я могу подписаться на информационный бюллетень, который сообщает мне, когда Google добавляет функции в свои товары? Потому что это сэкономило бы мне 6 часов гугления, задавая бесполезный повторяющийся вопрос на S.O. и написание 300 строк сложного кода для манипулирования временем, чтобы все правильно попало в электронные таблицы. Еще раз Могсдад, ты мужчина! 26.06.2013
  • @ChrisCirefice - это постоянно развивающийся мир, это точно. Я видел неофициальное объявление об этом в середине мая, так что оно довольно новый. Все, что я могу посоветовать, это прийти сюда или зайти на этот форум раньше, до того, как вы потратите слишком много времени. С помощью apps-script общедоступный трекер проблем дает вам возможность получать уведомления о запросах, которые вас интересуют, но форум для Docs/Drive не так полезен. 26.06.2013
  • Хорошо, я постараюсь больше участвовать в отслеживании проблем. Я на самом деле очень рад, что опубликовал этот вопрос, когда я это сделал - отсутствие средства выбора даты / времени в пользовательском интерфейсе Google Forms собиралось заставить меня создать целый сайт Google только для размещения сгенерированных кодом форм, которые могут иметь дату /время интерфейса. Я люблю Google, но было бы очень хорошо, если бы у них был очевидный способ подписаться на информационные бюллетени о продуктах. Я огляделся, и я не вижу никого. Неприятно, но так оно и есть, я полагаю! В любом случае, большое спасибо за то, что указали мне на эту функцию, избавили меня от гигантской головной боли :) 26.06.2013
  • этот блог также является хорошим способом быть в курсе: googleappsdeveloper.blogspot.be 18.07.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..