zoukankan      html  css  js  c++  java
  • 格式化日期时间字符串 Get-Date -Uformat , -format

    #将字符串格式化为时间格式
    $dateTimeStr '20141231T23:59:59'
    $format 'yyyyMMddTHH:mm:ss'
    $formatProvider [Globalization.CultureInfo]::InvariantCulture
    [datetime]::ParseExact($dateTimeStr,$format,$formatProvider)

    标准的DateTime格式字符串:

    d 区域性的短日期   “{0:D}” -f [DateTime] "01/23/4567"   结果: 1/23/4567

    d 区域性的长日期   “{0:d}” -f [DateTime] "01/23/4567"   结果:Friday, January 23, 4567

    f  组合的长日期和短时间   “{0:f}” -f [DateTime] "01/23/4567"   结果:Friday, January 23, 4567 12:00 AM

    F 组合的长日期和长时间   “{0:F}” -f [DateTime] "01/23/4567"   结果:Friday, January 23, 4567 12:00:00 AM

    g  合并的短日期和短时间  “{0:g}” -f [DateTime] "01/23/4567"   结果:1/23/4567 12:00 AM

    G  合并的短日期和短时间  “{0:G}” -f [DateTime] "01/23/4567"   结果:1/23/4567 12:00:00 AM

    M或m 区域性的月/天        “{0:M}” -f [DateTime] "01/23/4567"   结果: January 23

    o  将日期格式转化为原始的DataTime    “{0:o}” -f [DateTime] "01/23/4567"   结果: 4567-01-23T00:00:00.0000000

    R或r  标准的RFC1123格式  “{0:R}” -f [DateTime] "01/23/4567"   结果:Fri, 23 Jan 4567 00:00:00 GMT

    t   区域性的短时间   "{0:t}" -f [DateTime] "01/23/4567"   结果:12:00 AM

    T  区域性的长时间   "{0:T}" -f [DateTime] "01/23/4567"   结果:12:00:00 AM

    u  应用于UTC区域性的通用的日期格式  "{0:u}" -f [DateTime] "01/23/4567"   结果:4557-01-23 00:00:00z

    U  应用于UTC区域性的通用的日期格式  "{0:U}" -f [DateTime] "01/23/4567"   结果:Friday, January 23, 4567 8:00:00 AM  本地时间转换为UTC

    Y或y  区域性的年/月   "{0:Y}" -f [DateTime] "01/23/4567"   结果:January, 4567

     
    Local->UTC  DateTime.ToUniversalTime()
    UTC->Local  DateTime.ToLocalTime() 

    自定义格式化日期时间字符串:

    $yes = (get-date).adddays(-1) 

    get-date -date $yes -uformat "%Y/%m/%d"  输出: 2014/06/23

    $yes.tostring("yyyy/MM/dd") 输出:2014/06/23或者 2014-06-23 ,与本机时间格式设置有关 (大M是minute,小m是month)

    $yes.tostring("yyyy/MM/dd")  输出: 2014/06/23

    get-date -date $yes -format "yyyy/MM/dd" 输出:2014/06/23或者 2014-06-23 ,与本机时间格式设置有关

    get-date -date $yes -format "yyyy/MM/dd" 输出: 2014/06/23

    或者 

    $getDate = Get-Date -Date '05/09/2012 1:23 PM' -Format 'dd-MM-yyyy hh:mm:ss'
    使用字符串格式化(-f)运算符:
    $date = [DateTime] '03/27/2021 1:19 PM';
    $getDate = '{0: dd-MM-yyyy hh:mm:ss}' -f $date

    [datetime]$time="17:40"
    ([datetime]$time).addminutes("1").tostring("HH:mm")   输出:17:41

    ========================================================================

    时间转换(面的string长度必须要和指定的要转换的格式长度一样):
    [datetime]::ParseExact("20141008085412", "yyyyMMddHHmmss", $null) #$null表示使用当前的Culture

    自定义Culture:
    new-object Globalization.CultureInfo 'en-US'

    取当前Culture:
    Get-Culture  , Get-UICulture


    当前系统启动时间:
    [System.Management.ManagementDateTimeConverter]::ToDateTime((Get-WmiObject -Query "select LastBootUpTime from win32_operatingsystem" | Select-Object -ExpandProperty LastBootUpTime))

    ========================================================================

    Format 格式:

    d
    显示月份的当前日期,以 1 到 31 之间的一个数字表示,包括 1 和 31。如果日期只有一位数字 (1-9),则它显示为一位数字。 请注意,如果“d”格式说明符单独使用,没有其他自定义格式字符串,则它被解释为标准短日期模式格式说明符。
    如果“d”格式说明符与其他自定义格式说明符或者“%”字符一起传递,则它被解释为自定义格式说明符。

    dd
    显示月份的当前日期,以 1 到 31 之间的一个数字表示,包括 1 和 31。如果日期只有一位数字 (1-9),则将其格式化为带有前导 0 (01-09)。 ddd 显示指定的 DateTime 的日期部分缩写名称。如果未提供特定的有效格式提供程序(实现具有预期属性的 IFormatProvider 的非空对象),则使用 DateTimeFormat 的 AbbreviatedDayNames 属性及其与当前所使用线程关联的当前区域性。否则,使用来自指定格式提供程序的 AbbreviatedDayNames 属性。
    dddd(外加任意数量的附加“d”字符)
    显示指定的 DateTime 的日期全名。如果未提供特定的有效格式提供程序(一个非空对象,可实现具有预期属性的 IFormatProvider),则使用 DateTimeFormat 的 DayNames 属性及其与当前所使用线程关联的当前区域性。否则,使用来自指定格式提供程序的 DayNames 属性。

    f
    显示秒部分的最高有效位。
    请注意,如果“f”格式说明符单独使用,没有其他自定义格式字符串,则它被解释为完整的(长日期 + 短时间)格式说明符。如果“f”格式说明符与其他自定义格式说明符或“%”字符一起传递,则它被解释为自定义格式说明符。

    ff 显示秒部分的两个最高有效位。

    fff 显示秒部分的三个最高有效位。

    ffff 显示秒部分的四个最高有效位。

    fffff 显示秒部分的五个最高有效位。

    ffffff 显示秒部分的六个最高有效位。

    fffffff 显示秒部分的七个最高有效位。

    F 显示秒部分的最高有效位。如果该位为零,则不显示任何信息。

    FF 显示秒部分的两个最高有效位。但不显示尾随零(或两个零位)。

    FFF 显示秒部分的三个最高有效位。但不显示尾随零(或三个零位)。

    FFFF 显示秒部分的四个最高有效位。但不显示尾随零(或四个零位)。

    FFFFF 显示秒部分的五个最高有效位。但不显示尾随零(或五个零位)。

    FFFFFF 显示秒部分的六个最高有效位。但不显示尾随零(或六个零位)。

    FFFFFFF 显示秒部分的七个最高有效位。但不显示尾随零(或七个零位)。

    g 或 gg(外加任意数量的附加“g”字符)
    显示指定的 DateTime 的年代部分(例如 A.D.)。如果未提供特定的有效格式提供程序(一个非空对象,可实现具有预期属性的 IFormatProvider),则年代由与 DateTimeFormat 关联的日历及其与当前线程关联的当前区域性确定。
    请注意,如果“g”格式说明符单独使用,没有其他自定义格式字符串,则它被解释为标准常规格式说明符。如果“g”格式说明符与其他自定义格式说明符或“%”字符一起传递,则它被解释为自定义格式说明符。

    h
    以 1 到 12 范围中的一个数字显示指定的 DateTime 的小时数,该小时数表示自午夜(显示为 12)或中午(也显示为 12)后经过的整小时数。如果单独使用这种格式,则无法区别某一小时是中午以前还是中午以后的时间。如果该小时是单个数字 (1-9),则它显示为单个数字。显示小时时不发生任何舍入。例如,DateTime 为 5:43 时返回 5。

    hh, hh(外加任意数量的附加“h”字符)
    以 1 到 12 范围中的一个数字显示指定的 DateTime 的小时数,该小时数表示自午夜(显示为 12)或中午(也显示为 12)后经过的整小时数。如果单独使用这种格式,则无法区别某一小时是中午以前还是中午以后的时间。如果该小时是单个数字 (1-9),则将其格式化为前面带有 0 (01-09)。

    H
    以 0 到 23 范围中的一个数字显示指定的 DateTime 的小时数,该小时数表示自午夜(显示为 0)后经过的整小时数。如果该小时是单个数字 (0-9),则它显示为单个数字。

    HH, HH(外加任意数量的附加“H”字符)
    以 0 到 23 范围中的一个数字显示指定的 DateTime 的小时数,该小时数表示自午夜(显示为 0)后经过的整小时数。如果该小时是单个数字 (0-9),则将其格式化为前面带有 0 (01-09)。

    m
    以 0 到 59 范围中的一个数字显示指定的 DateTime 的分钟数,该分钟数表示自上一小时后经过的整分钟数。如果分钟是一位数字 (0-9),则它显示为一位数字。 请注意,如果“m”格式说明符单独使用,没有其他自定义格式字符串,则它被解释为标准的月日模式格式说明符。如果“m”格式说明符与其他自定义格式说明符或“%”字符一起传递,则它被解释为自定义格式说明符。

    mm, mm(外加任意数量的附加“m”字符)
    以 0 到 59 范围中的一个数字显示指定的 DateTime 的分钟数,该分钟数表示自上一小时后经过的整分钟数。如果分钟是一位数字 (0-9),则将其格式化为带有前导 0 (01-09)。

    M
    显示月份,以 1 到 12 之间(包括 1 和 12)的一个数字表示。如果月份是一位数字 (1-9),则它显示为一位数字。 请注意,如果“M”格式说明符单独使用,没有其他自定义格式字符串,则它被解释为标准的月日模式格式说明符。如果“M”格式说明符与其他自定义格式说明符或“%”字符一起传递,则它被解释为自定义格式说明符。

    MM
    显示月份,以 1 到 12 之间(包括 1 和 12)的一个数字表示。如果月份是一位数字 (1-9),则将其格式化为带有前导 0 (01-09)。

    MMM
    显示指定的 DateTime 的月部分缩写名称。如果未提供特定的有效格式提供程序(一个非空对象,可实现具有预期属性的 IFormatProvider),则使用 DateTimeFormat 的 AbbreviatedMonthNames 属性及其与当前线程关联的当前区域性。否则,使用来自指定格式提供程序的 AbbreviatedMonthNames 属性。

    MMMM
    显示指定的 DateTime 的月的全名。如果未提供特定的有效格式提供程序(一个非空对象,可实现具有预期属性的 IFormatProvider),则使用 DateTimeFormat 的 MonthNames 属性及其与当前线程关联的当前区域性。否则,使用来自指定格式提供程序的 MonthNames 属性。

    s
    以 0 到 59 范围中的一个数字显示指定的 DateTime 的秒数,该秒数表示自上一分钟后经过的整秒数。如果秒是一位数字 (0-9),则它仅显示为一位数字。 请注意,如果“s”格式说明符单独使用,没有其他自定义格式字符串,则它被解释为标准的可排序日期/时间模式格式说明符。如果“s”格式说明符与其他自定义格式说明符或“%”字符一起传递,则它被解释为自定义格式说明符。

    ss, ss(外加任意数量的附加“s”字符)
    以 0 到 59 范围中的一个数字显示指定的 DateTime 的秒数,该秒数表示自上一分钟后经过的整秒数。如果秒是一位数字 (0-9),则将其格式化为带有前导 0 (01-09)。

    t
    显示指定的 DateTime 的 A.M./P.M. 指示项的第一个字符。如果未提供特定的有效格式提供程序(一个非空对象,可实现具有预期属性的 IFormatProvider),则使用 DateTimeFormat 的 AMDesignator(或 PMDesignator)属性及其与当前线程关联的当前区域性。否则,使用
    来自指定 IFormatProvider 的 AMDesignator(或 PMDesignator)属性。如果对于指定的 DateTime 所经过的总整小时数小于 12,则使用 AMDesignator。否则,使用 PMDesignator。 请注意,如果“t”格式说明符单独使用,没有其他自定义格式字符串,则它被解释为标准的长时间模式格式说明符。如果“t”格式说明符与其他自定义格式说明符或“%”字符一起传递,则它被解释为自定义格式说明符。

    tt, tt(外加任意数量的附加“t”字符)
    显示指定的 DateTime 的 A.M./P.M. 指示项。如果未提供特定的有效格式提供程序(一个非空对象,可实现具有预期属性的 IFormatProvider),则使用 DateTimeFormat 的 AMDesignator(或 PMDesignator)属性及其与当前线程关联的当前区域性。否则,使用来自指定 IFormatProvider 的 AMDesignator(或 PMDesignator)属性。如果对于指定的 DateTime 所经过的总整小时数小于 12,则使用 AMDesignator。否则,使用 PMDesignator。

    y
    最多用两位数字显示指定的 DateTime 的年份。忽略年的前两位数字。如果年份是一位数字 (1-9),则它显示为一位数字。
    请注意,如果“y”格式说明符单独使用,没有其他自定义格式字符串,则它被解释为标准短日期模式格式说明符。如果“y”格式说明符与其他自定义格式说明符或“%”字符一起传递,则它被解释为自定义格式说明符。

    yy
    最多用两位数字显示指定的 DateTime 的年份。忽略年的前两位数字。如果年份是一位数字 (1-9),则将其格式化为带有前导 0 (01-09)。

    yyyy 显示指定的 DateTime 的年份部分(包括纪元)。如果年份长度小于四位,则按需要在前面追加零以使显示的年份长度达到四位。

    z
    仅以整小时数为单位显示系统当前时区的时区偏移量。偏移量总显示为带有前导符号(零显示为“+0”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值的范围是 -12 到 +13。如果偏移量为一位数 (0-9),则将其显示为带有合适前导符号的一位数。时区设置以 +X 或 –X 的形式指定,其中 X 是相对于 GMT 的小时偏差。显示的偏差受夏时制的影响。

    zz
    仅以整小时数为单位显示系统当前时区的时区偏移量。偏移量总显示为带有前导或尾随符号(零显示为“+00”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值范围为 -12 到 +13。如果偏移量为一位数 (0-9),则将其格式化为前面带有 0 (01-09) 并带有适当的前导符号。时区设置以 +X 或 –X 的形式指定,其中 X 是相对于 GMT 的小时偏差。显示的偏差受夏时制的影响。

    zzz, zzz(外加任意数量的附加“z”字符)
    以小时和分钟为单位显示系统当前时区的时区偏移量。偏移量总是显示为带有前导或尾随符号(零显示为“+00:00”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值范围为 -12:00 到 +13:00。如果偏移量为一位数 (0-9),则将其格式化为前面带有 0 (01-09) 并带有适当的前导符号。时区设置以 +X 或 –X 的形式指定,其中 X 是相对于 GMT 的小时偏差。显示的偏差受夏时制的影响。


    : 时间分隔符。

    / 日期分隔符。

    " 带引号的字符串。显示转义符 (/) 之后两个引号之间的任何字符串的文本值。

    ' 带引号的字符串。显示两个“'”字符之间的任何字符串的文本值。

    %c 其中 c 既是标准格式说明符又是自定义格式说明符,显示与格式说明符关联的自定义格式模式。
    请注意,如果格式说明符作为单个字符来单独使用,它将被解释成标准格式说明符。只有包含两个或更多字符的格式说明符被解释为自定义格式说明符。说明符可以被同时定义为标准和自定义格式说明符,要显示此种说明符的自定义格式,请在说明符之前加“%”符号。

    c 其中 c 是任意字符,转义符将下一个字符显示为文本。在此上下文中,转义符不能用于创建转义序列(如“ ”表示换行)。

  • 相关阅读:
    自定义函数
    取小数的有效值函数
    数据恢复bak
    脚本启动windows服务
    创建表
    PostgreSQL和SQL SERVER的数据库差异
    vs2019莫名自动退出调试状态
    postgresql 设置调试
    Google Web字体,让你的网页更迷人
    翻译:观察者模式—使用JavaScript实现
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/3805726.html
Copyright © 2011-2022 走看看