Преобразуйте дату и время в до настоящего времени

Microsoft Face API является услугой SaaS: вы не размещаете какие-либо ресурсы, используемые API в вашей собственной подписке. Итак, главное: нет данных, сохраненных в вашей базе данных Azure.

У вас не будет прямого доступа к ресурсам, на которых размещены метаданные, используемые для сохраненных лиц, все, что вы можете получить, - это данные, доступные через API: https://westus.dev.cognitive.microsoft.com/ docs / services / 563879b61984550e40cbbe8d / operations / 563879b61984550f30395236

Поэтому, если вы хотите получить ориентиры лица, вы можете получить их только во время вызова метода Detect, который имеет следующие свойства: [1111 ]

Массив из 27 точечных ориентиров лица, указывающих на важные положения компонентов лица. Чтобы вернуть это, требуется, чтобы параметр "returnFaceLandmarks" имел значение true.

blockquote>

В результате вы получите следующие предметы:

"faceLandmarks": {
    "pupilLeft": {
        "x": 412.7,
        "y": 78.4
    },
    "pupilRight": {
        "x": 446.8,
        "y": 74.2
    },
    "noseTip": {
        "x": 437.7,
        "y": 92.4
    },
    "mouthLeft": {
        "x": 417.8,
        "y": 114.4
    },
    "mouthRight": {
        "x": 451.3,
        "y": 109.3
    },
    "eyebrowLeftOuter": {
        "x": 397.9,
        "y": 78.5
    },
    "eyebrowLeftInner": {
        "x": 425.4,
        "y": 70.5
    },
    "eyeLeftOuter": {
        "x": 406.7,
        "y": 80.6
    },
    "eyeLeftTop": {
        "x": 412.2,
        "y": 76.2
    },
    "eyeLeftBottom": {
        "x": 413.0,
        "y": 80.1
    },
    "eyeLeftInner": {
        "x": 418.9,
        "y": 78.0
    },
    "eyebrowRightInner": {
        "x": 4.8,
        "y": 69.7
    },
    "eyebrowRightOuter": {
        "x": 5.5,
        "y": 68.5
    },
    "eyeRightInner": {
        "x": 441.5,
        "y": 75.0
    },
    "eyeRightTop": {
        "x": 446.4,
        "y": 71.7
    },
    "eyeRightBottom": {
        "x": 447.0,
        "y": 75.3
    },
    "eyeRightOuter": {
        "x": 451.7,
        "y": 73.4
    },
    "noseRootLeft": {
        "x": 428.0,
        "y": 77.1
    },
    "noseRootRight": {
        "x": 435.8,
        "y": 75.6
    },
    "noseLeftAlarTop": {
        "x": 428.3,
        "y": 89.7
    },
    "noseRightAlarTop": {
        "x": 442.2,
        "y": 87.0
    },
    "noseLeftAlarOutTip": {
        "x": 424.3,
        "y": 96.4
    },
    "noseRightAlarOutTip": {
        "x": 446.6,
        "y": 92.5
    },
    "upperLipTop": {
        "x": 437.6,
        "y": 105.9
    },
    "upperLipBottom": {
        "x": 437.6,
        "y": 108.2
    },
    "underLipTop": {
        "x": 436.8,
        "y": 111.4
    },
    "underLipBottom": {
        "x": 437.3,
        "y": 114.5
    }
},

Если вам понадобится использовать эти детали позже, если вы сохраните лицо, я могу предложить 2 варианта:

  • размещают в вашей подписке базу данных, в которой вы будете хранить эти параметры и persistedFaceId
  • или передаете эти значения в поле userData , когда сохраняете значения. Это поле: User-specified data about the face list for any purpose. The maximum length is 1KB. Затем вы можете получить эти поля позже, используя метод Get

8
задан Blair Conrad 8 December 2008 в 12:20
поделиться

6 ответов

Существует [к сожалению], не "out-of-the поле" метод для выполнения этой операции в Grails|Groovy|Java.

Кто-то всегда добавляет Joda-разовый любое время a java.util.Date или java.util.Calendar вопрос поднят, но включая еще одну библиотеку не всегда опция.

Последний раз, для подобной проблемы, мы создали a DateTimeUtil класс с static методы и что-то как следующее для получения a Date только:

class DateTimeUtil {

    // ...

    public static Date getToday() {
        return setMidnight(new Date())
    }

    public static Date getTomorrow() {
        return (getToday() + 1) as Date
    }

    public static Date setMidnight(Date theDate) {
        Calendar cal = Calendar.getInstance()
        cal.setTime(theDate)
        cal.set(Calendar.HOUR_OF_DAY, 0)
        cal.set(Calendar.MINUTE, 0)
        cal.set(Calendar.SECOND, 0)
        cal.set(Calendar.MILLISECOND, 0)
        cal.getTime()
    }

    //...

}

Затем в блоке проверки допустимости можно использовать

startDate(validator: {return (it.after(DateTimeUtil.today))}) //Groovy-ism - today implicitly invokes `getToday()` 
7
ответ дан 5 December 2019 в 10:44
поделиться

Я взломал его:

startDate (блок проверки допустимости: {возвращаются (это> = новая Дата ()-1)}),

Это было это простое ;-)

Изменить представление на странице GSP:

<g:datePicker name="startDate" value="${trip?.startDate}" years="${years}"  precision="day" />

Спасибо все для вклада

3
ответ дан 5 December 2019 в 10:44
поделиться

Лучше используйте плагин каландра в Grails.

3
ответ дан 5 December 2019 в 10:44
поделиться

Попытайтесь использовать 'java.sql. Дата' не 'java.util. Дата' как тип Вашего свойства Date наряду с

formatDate

Цель

Позволяет форматирование java.util. Экземпляры даты с помощью тех же шаблонов определяются классом SimpleDateFormat.

Примеры

Описание

Атрибуты

* format (required) - The format to use for the date
* date (required) - The date object to format
1
ответ дан 5 December 2019 в 10:44
поделиться

Вы попытались использовать jodatime? Это делает работу с датой и временем в Java настолько легче.

0
ответ дан 5 December 2019 в 10:44
поделиться

Возможно,

startDate(validator: {d = new Date(); return (it..d) >= 0})
0
ответ дан 5 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

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