Datum functies voor ARM-sjablonenDate functions for ARM templates

Resource Manager biedt de volgende functies voor het werken met datums in uw Azure Resource Manager sjabloon (ARM-sjabloon):Resource Manager provides the following functions for working with dates in your Azure Resource Manager template (ARM template):

Notitie

Dit artikel bevat Bicep-voor beelden.This article contains Bicep examples. Bicep is momenteel beschikbaar als preview-versie.Bicep is currently in preview. Zie Bicep Overview(Engelstalig) voor meer informatie.For more information, see Bicep overview.

dateTimeAdddateTimeAdd

dateTimeAdd(base, duration, [format])

Voegt een tijds duur toe aan een basis waarde.Adds a time duration to a base value. ISO 8601-indeling wordt verwacht.ISO 8601 format is expected.

ParametersParameters

ParameterParameter VereistRequired TypeType DescriptionDescription
basebase YesYes tekenreeksstring De begin datum/tijd-waarde voor de toevoeging.The starting datetime value for the addition. ISO 8601-time stamp notatiegebruiken.Use ISO 8601 timestamp format.
duurduration YesYes tekenreeksstring De tijd waarde die aan de basis moet worden toegevoegd.The time value to add to the base. Dit kan een negatieve waarde zijn.It can be a negative value. Gebruik de ISO 8601-duur notatie.Use ISO 8601 duration format.
indelingformat NoNo tekenreeksstring De uitvoer indeling voor het resultaat van de datum en tijd.The output format for the date time result. Als u dit niet opgeeft, wordt de indeling van de basis waarde gebruikt.If not provided, the format of the base value is used. Gebruik standaard notatie teken reeksen of teken reeksen met aangepaste notaties.Use either standard format strings or custom format strings.

RetourwaardeReturn value

De waarde voor datum/tijd die het resultaat is van het toevoegen van de waarde duration aan de basis waarde.The datetime value that results from adding the duration value to the base value.

VoorbeeldenExamples

In de volgende voorbeeld sjabloon ziet u verschillende manieren om tijd waarden toe te voegen.The following example template shows different ways of adding time values.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "baseTime": {
      "type": "string",
      "defaultValue": "[utcNow('u')]"
    }
  },
  "variables": {
    "add3Years": "[dateTimeAdd(parameters('baseTime'), 'P3Y')]",
    "subtract9Days": "[dateTimeAdd(parameters('baseTime'), '-P9D')]",
    "add1Hour": "[dateTimeAdd(parameters('baseTime'), 'PT1H')]"
  },
  "resources": [],
  "outputs": {
    "add3YearsOutput": {
      "value": "[variables('add3Years')]",
      "type": "string"
    },
    "subtract9DaysOutput": {
      "value": "[variables('subtract9Days')]",
      "type": "string"
    },
    "add1HourOutput": {
      "value": "[variables('add1Hour')]",
      "type": "string"
    },
  }
}

Wanneer de voor gaande sjabloon wordt geïmplementeerd met een basis tijd van 2020-04-07 14:53:14Z , is de uitvoer:When the preceding template is deployed with a base time of 2020-04-07 14:53:14Z, the output is:

NaamName TypeType WaardeValue
add3YearsOutputadd3YearsOutput TekenreeksString 4/7/2023 2:53:14 UUR4/7/2023 2:53:14 PM
subtract9DaysOutputsubtract9DaysOutput TekenreeksString 3/29/2020 2:53:14 UUR3/29/2020 2:53:14 PM
add1HourOutputadd1HourOutput TekenreeksString 4/7/2020 3:53:14 UUR4/7/2020 3:53:14 PM

In de volgende voorbeeld sjabloon ziet u hoe u de start tijd voor een Automation-schema kunt instellen.The next example template shows how to set the start time for an Automation schedule.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "omsAutomationAccountName": {
      "type": "string",
      "defaultValue": "demoAutomation",
      "metadata": {
        "description": "Use an existing Automation account."
      }
    },
    "scheduleName": {
      "type": "string",
      "defaultValue": "demoSchedule1",
      "metadata": {
        "description": "Name of the new schedule."
      }
    },
    "baseTime": {
      "type": "string",
      "defaultValue": "[utcNow('u')]",
      "metadata": {
        "description": "Schedule will start one hour from this time."
      }
    }
  },
  "variables": {
    "startTime": "[dateTimeAdd(parameters('baseTime'), 'PT1H')]"
  },
  "resources": [
    ...
    {
      "type": "Microsoft.Automation/automationAccounts/schedules",
      "apiVersion": "2015-10-31",
      "name": "[concat(parameters('omsAutomationAccountName'), '/', parameters('scheduleName'))]",

      "properties": {
        "description": "Demo Scheduler",
        "startTime": "[variables('startTime')]",
        "interval": 1,
        "frequency": "Hour"
      }
    }
  ],
  "outputs": {
  }
}

utcNowutcNow

utcNow(format)

Retourneert de huidige (UTC) datum/tijd-waarde in de opgegeven notatie.Returns the current (UTC) datetime value in the specified format. Als er geen indeling wordt gegeven, wordt de ISO 8601 ( yyyyMMddTHHmmssZ )-indeling gebruikt.If no format is provided, the ISO 8601 (yyyyMMddTHHmmssZ) format is used. Deze functie kan alleen worden gebruikt in de standaard waarde voor een para meter.This function can only be used in the default value for a parameter.

ParametersParameters

ParameterParameter VereistRequired TypeType DescriptionDescription
indelingformat NoNo tekenreeksstring De gecodeerde URI-waarde die moet worden geconverteerd naar een teken reeks.The URI encoded value to convert to a string. Gebruik standaard notatie teken reeksen of teken reeksen met aangepaste notaties.Use either standard format strings or custom format strings.

OpmerkingenRemarks

U kunt deze functie alleen gebruiken in een expressie voor de standaard waarde van een para meter.You can only use this function within an expression for the default value of a parameter. Als u deze functie ergens anders in een sjabloon gebruikt, wordt er een fout geretourneerd.Using this function anywhere else in a template returns an error. De functie is niet toegestaan in andere onderdelen van de sjabloon omdat deze een andere waarde retourneert telkens wanneer deze wordt aangeroepen.The function isn't allowed in other parts of the template because it returns a different value each time it's called. Het implementeren van dezelfde sjabloon met dezelfde para meters zou geen betrouw bare resultaten opleveren.Deploying the same template with the same parameters wouldn't reliably produce the same results.

Als u de optie voor het terugdraaien van een fout naar een eerdere geslaagde implementatie gebruikt en de eerdere implementatie een para meter bevat waarin utcNow wordt gebruikt, wordt de para meter niet opnieuw geëvalueerd.If you use the option to rollback on error to an earlier successful deployment, and the earlier deployment includes a parameter that uses utcNow, the parameter isn't reevaluated. In plaats daarvan wordt de parameter waarde van de eerdere implementatie automatisch opnieuw gebruikt in de rollback-implementatie.Instead, the parameter value from the earlier deployment is automatically reused in the rollback deployment.

Wees voorzichtig met het opnieuw implementeren van een sjabloon die afhankelijk is van de functie utcNow voor een standaard waarde.Be careful redeploying a template that relies on the utcNow function for a default value. Wanneer u opnieuw implementeert en geen waarde opgeeft voor de para meter, wordt de functie opnieuw geëvalueerd.When you redeploy and don't provide a value for the parameter, the function is reevaluated. Als u een bestaande resource wilt bijwerken in plaats van een nieuwe te maken, geeft u de parameter waarde van de eerdere implementatie door.If you want to update an existing resource rather than create a new one, pass in the parameter value from the earlier deployment.

RetourwaardeReturn value

De huidige UTC-waarde voor datum/tijd.The current UTC datetime value.

VoorbeeldenExamples

In de volgende voorbeeld sjabloon ziet u verschillende notaties voor de datum/tijd-waarde.The following example template shows different formats for the datetime value.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "utcValue": {
      "type": "string",
      "defaultValue": "[utcNow()]"
    },
    "utcShortValue": {
      "type": "string",
      "defaultValue": "[utcNow('d')]"
    },
    "utcCustomValue": {
      "type": "string",
      "defaultValue": "[utcNow('M d')]"
    }
  },
  "resources": [
  ],
  "outputs": {
    "utcOutput": {
      "type": "string",
      "value": "[parameters('utcValue')]"
    },
    "utcShortOutput": {
      "type": "string",
      "value": "[parameters('utcShortValue')]"
    },
    "utcCustomOutput": {
      "type": "string",
      "value": "[parameters('utcCustomValue')]"
    }
  }
}

De uitvoer van het voor gaande voor beeld varieert per implementatie, maar lijkt op:The output from the preceding example varies for each deployment but will be similar to:

NaamName TypeType WaardeValue
utcOutpututcOutput tekenreeksstring 20190305T175318Z20190305T175318Z
utcShortOutpututcShortOutput tekenreeksstring 03/05/201903/05/2019
utcCustomOutpututcCustomOutput tekenreeksstring 3 53 5

In het volgende voor beeld ziet u hoe u een waarde uit de functie gebruikt wanneer u een tag-waarde instelt.The next example shows how to use a value from the function when setting a tag value.

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "utcShort": {
      "type": "string",
      "defaultValue": "[utcNow('d')]"
    },
    "rgName": {
      "type": "string"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/resourceGroups",
      "apiVersion": "2020-10-01",
      "name": "[parameters('rgName')]",
      "location": "westeurope",
      "tags": {
        "createdDate": "[parameters('utcShort')]"
      },
      "properties": {}
    }
  ],
  "outputs": {
    "utcShortOutput": {
      "type": "string",
      "value": "[parameters('utcShort')]"
    }
  }
}

Volgende stappenNext steps