2012-12-20 1 views
1

Как я могу получить US cultureinfo (en-US) для отображения в виде mm/DD/yyyy с 2 десятичными знаками, когда месяц и дата равны или меньше 9? Я хочу показать дату как 09/03/2012 вместо 9/3/2012? Пожалуйста, объясните, как это работает, а также дайте точный ответ. Спасибо!В Powershell, как я могу получить US cultureinfo (en-US) для отображения в виде mm/DD/yyyy с 2 десятичными знаками, когда месяц и дата меньше 9?

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 

$objForm = New-Object Windows.Forms.Form 

$objForm.Text = "Select a Date" 
$objForm.Size = New-Object Drawing.Size @(190,190) 
$objForm.StartPosition = "CenterScreen" 

$objForm.KeyPreview = $True 

$objForm.Add_KeyDown({ 
    if ($_.KeyCode -eq "Enter") 
     { 
      $dtmDate=$objCalendar.SelectionStart 
      $objForm.Close() 
     } 
    }) 

$objForm.Add_KeyDown({ 
    if ($_.KeyCode -eq "Escape") 
     { 
      $objForm.Close() 
     } 
    }) 

$us = New-Object system.globalization.cultureinfo("en-US") 

$objCalendar = New-Object System.Windows.Forms.MonthCalendar 
$objCalendar.ShowTodayCircle = $False 
$objCalendar.MaxSelectionCount = 1 
$objForm.Controls.Add($objCalendar) 

$objForm.Topmost = $True 

$objForm.Add_Shown({$objForm.Activate()}) 
[void] $objForm.ShowDialog() 

$finaldate = $dtmdate | Get-Date -format ($us.DateTimeFormat.ShortDatePattern) 

Write-Host $finaldate 

ответ

1

Вы просто должны использовать правильный DateTime формат строки т.д .:

C:\PS> Get-Date -Format MM/dd/yyyy -Month 9 -Day 3 
09/03/2012 

Смотрите тему MSDN на Custom DateTime Formatting Strings.