Datum funktioner för ARM-mallarDate functions for ARM templates

Resource Manager innehåller följande funktioner för att arbeta med datum i din Azure Resource Manager-mall (ARM-mall):Resource Manager provides the following functions for working with dates in your Azure Resource Manager template (ARM template):

Anteckning

Den här artikeln innehåller bicep-exempel.This article contains Bicep examples. Bicep är för närvarande en för hands version.Bicep is currently in preview. Mer information finns i Översikt över bicep.For more information, see Bicep overview.

dateTimeAdddateTimeAdd

dateTimeAdd(base, duration, [format])

Lägger till en tids period till ett bas värde.Adds a time duration to a base value. ISO 8601-format förväntas.ISO 8601 format is expected.

ParametrarParameters

ParameterParameter KrävsRequired TypType BeskrivningDescription
basebase JaYes strängstring Start-datetime-värdet för additionen.The starting datetime value for the addition. Använd formatet ISO 8601-tidsstämpel.Use ISO 8601 timestamp format.
varaktighetduration JaYes strängstring Det tids värde som ska läggas till i basen.The time value to add to the base. Det kan vara ett negativt värde.It can be a negative value. Använd varaktighets formatet ISO 8601.Use ISO 8601 duration format.
formatformat IngaNo strängstring Utdataformatet för datum/tid-resultatet.The output format for the date time result. Om inget värde anges används formatet för bas värdet.If not provided, the format of the base value is used. Använd antingen standard format strängar eller anpassade format strängar.Use either standard format strings or custom format strings.

ReturvärdeReturn value

Det datetime-värde som är resultatet av att lägga till duration-värdet i bas värdet.The datetime value that results from adding the duration value to the base value.

ExempelExamples

Följande exempel-mall visar olika sätt att lägga till tids värden.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"
    },
  }
}

När föregående mall distribueras med en bas tid av 2020-04-07 14:53:14Z , är utdata:When the preceding template is deployed with a base time of 2020-04-07 14:53:14Z, the output is:

NamnName TypType VärdeValue
add3YearsOutputadd3YearsOutput SträngString 4/7/2023 2:53:14 PM4/7/2023 2:53:14 PM
subtract9DaysOutputsubtract9DaysOutput SträngString 3/29/2020 2:53:14 PM3/29/2020 2:53:14 PM
add1HourOutputadd1HourOutput SträngString 4/7/2020 3:53:14 PM4/7/2020 3:53:14 PM

I nästa exempel-mall visas hur du ställer in start tiden för ett Automation-schema.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)

Returnerar det aktuella (UTC) datetime-värdet i det angivna formatet.Returns the current (UTC) datetime value in the specified format. Om inget format anges används formatet ISO 8601 ( yyyyMMddTHHmmssZ ).If no format is provided, the ISO 8601 (yyyyMMddTHHmmssZ) format is used. Den här funktionen kan endast användas i standardvärdet för en parameter.This function can only be used in the default value for a parameter.

ParametrarParameters

ParameterParameter KrävsRequired TypType BeskrivningDescription
formatformat IngaNo strängstring Det URI-kodade värdet som ska konverteras till en sträng.The URI encoded value to convert to a string. Använd antingen standard format strängar eller anpassade format strängar.Use either standard format strings or custom format strings.

KommentarerRemarks

Du kan bara använda den här funktionen i ett uttryck för standardvärdet för en parameter.You can only use this function within an expression for the default value of a parameter. Om du använder den här funktionen någon annan stans i en mall returneras ett fel.Using this function anywhere else in a template returns an error. Funktionen tillåts inte i andra delar av mallen eftersom den returnerar ett annat värde varje gång den anropas.The function isn't allowed in other parts of the template because it returns a different value each time it's called. Att distribuera samma mall med samma parametrar skulle inte tillförlitligt producera samma resultat.Deploying the same template with the same parameters wouldn't reliably produce the same results.

Om du använder alternativet för att återställa vid fel till en tidigare lyckad distribution, och den tidigare distributionen innehåller en parameter som använder utcNow, utvärderas inte parametern om.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. I stället återanvänds parametervärdet från den tidigare distributionen automatiskt i återställnings distributionen.Instead, the parameter value from the earlier deployment is automatically reused in the rollback deployment.

Var noga med att distribuera om en mall som förlitar sig på utcNow-funktionen för ett standardvärde.Be careful redeploying a template that relies on the utcNow function for a default value. När du distribuerar om och inte anger något värde för parametern utvärderas funktionen om.When you redeploy and don't provide a value for the parameter, the function is reevaluated. Om du vill uppdatera en befintlig resurs i stället för att skapa en ny, måste du skicka värdet i parametervärdet från den tidigare distributionen.If you want to update an existing resource rather than create a new one, pass in the parameter value from the earlier deployment.

ReturvärdeReturn value

Aktuellt UTC-slutdatum värde.The current UTC datetime value.

ExempelExamples

I följande exempel mall visas olika format för datetime-värdet.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')]"
    }
  }
}

Resultatet från föregående exempel varierar för varje distribution, men ser ut ungefär så här:The output from the preceding example varies for each deployment but will be similar to:

NamnName TypType VärdeValue
utcOutpututcOutput strängstring 20190305T175318Z20190305T175318Z
utcShortOutpututcShortOutput strängstring 03/05/201903/05/2019
utcCustomOutpututcCustomOutput strängstring 3 53 5

I nästa exempel visas hur du använder ett värde från funktionen när du anger ett tagg värde.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')]"
    }
  }
}

Nästa stegNext steps