DateTimeFormatInfo 类

From: http://127.0.0.1:47873/help/0-3684/ms.help?method=page&id=T%3ASYSTEM.GLOBALIZATION.DATETIMEFORMATINFO&product=VS&productVersion=100&topicVersion=100&locale=ZH-CN&topicLocale=ZH-CN


定义如何根据区域性设置 DateTime 值的格式并显示这些值。

命名空间:     System.Globalization
程序集:     mscorlib (在 mscorlib.dll 中)
语法
VB
C#
C++
F#
JScript
打印
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class DateTimeFormatInfo : ICloneable, IFormatProvider
备注

此类包含各种信息,例如日期模式、时间模式和 AM/PM 指示项。使用在 DateTimeFormatInfo 对象的属性中存储的标准或自定义模式设置 DateTime 值的格式。

在应用程序中直接使用 DateTimeFormatInfo 构造函数,可创建固定区域性的日期/时间信息。 应用程序对只读版本使用 InvariantInfo 属性,对可写版本使用 DateTimeFormatInfo 构造函数。 对于非特定区域性,不能创建 DateTimeFormatInfo 对象。

若要为特定区域性创建 DateTimeFormatInfo 对象,应用程序应为该区域性创建 CultureInfo 对象并检索 CultureInfo .DateTimeFormat 属性。 以这种方式获得的日期/时间数据仅适用于特定的区域性。

若要为当前线程的区域性创建 DateTimeFormatInfo 对象,应用程序应使用 CurrentInfo 属性。

用户可以通过“控制面板”的“区域和语言选项”部分选择重写某些与 Windows 当前区域性关联的值。例如,用户可能选择以另一种格式显示日期,或选择使用区域性默认设置以外的货币。如果将 CultureInfo .UseUserOverride 属性设置为 true,则还将从用户设置中检索 CultureInfo .DateTimeFormat 对象、 CultureInfo .NumberFormat 对象和 CultureInfo .TextInfo 对象的属性。 如果用户设置与 CultureInfo 对象的关联区域性不兼容(例如,当选定的日历不是 OptionalCalendars 指示的日历之一时),则这些方法的结果和属性值是不确定的。

在 .NET Framework 2.0 版之前的版本中,如果 CultureInfo .UseUserOverride 属性设置为 true,该对象只有在首次被访问时才会读取可被用户重写的每个属性。 由于 DateTimeFormatInfo 具有多个可被用户重写的属性,因此当出现下列情况时,这种“惰性初始化”可导致这类属性之间出现不一致:应用程序访问某个属性,同时用户更改为其他区域性或重写当前用户区域性的属性,随后应用程序访问另一个属性。 例如,按照上述顺序,可以访问LongDatePattern。 然后,用户可以在控制面板中更改模式。在访问时, ShortDatePattern 将遵循新的设置。 当用户选择其他用户区域性而不是只重写某个特定模式时,也会发生类似的不一致。

在 .NET Framework 2.0 版和更高版本中, DateTimeFormatInfo 不使用上述“惰性初始化”。而是在其创建时读取所有的用户可重写属性。 由于对象创建和用户重写过程都不是原子操作,并且相关值在对象创建过程中可能会发生更改,因此漏洞在小范围内仍然存在。但是,这种情况应该十分少见。

这种更改在序列化情况下尤为重要。.NET Framework 2.0 版和更高版本将保留所有可重写的设置,而不是仅保留执行序列化时所访问的可重写设置。

应用程序可通过设置可写 DateTimeFormatInfo 对象的关联属性来将标准模式替换为自定义模式。 若要确定 DateTimeFormatInfo 对象是否可写,应用程序应使用 IsReadOnly 属性。

下表列出了与 DateTimeFormatInfo 属性关联的标准 DateTime 格式模式。 有关更多信息,请参见 标准日期和时间格式字符串。

格式模式

关联属性/说明

d

ShortDatePattern

D

LongDatePattern

f

完整日期和时间(长日期和短时间)

F

FullDateTimePattern(长日期和长时间)

g

常规(短日期和短时间)

G

常规(短日期和长时间)

m、M

MonthDayPattern

o、O

往返日期/时间模式;在这种格式模式下,格式设置或分析操作始终使用固定区域性

r、R

RFC1123Pattern;在这种格式模式下,格式设置或分析操作始终使用固定区域性

s

使用本地时间的 SortableDateTimePattern(基于 ISO 8601);在这种格式模式下,格式设置或分析操作始终使用固定区域性

t

ShortTimePattern

T

LongTimePattern

u

使用通用时间显示格式的 UniversalSortableDateTimePattern;在这种格式模式下,格式设置或分析操作始终使用固定区域性

U

使用通用时间的完整日期和时间(长日期和长时间)

y、Y

YearMonthPattern

下表列出了自定义 DateTime 格式模式及其行为。 有关更多信息,请参见 自定义日期和时间格式字符串。

格式模式

说明

d、%d

月中的某一天。一位数的日期没有前导零。如果此格式模式没有与其他格式模式组合,应用程序将指定“%d”。

dd

月中的某一天。一位数的天有一个前导零。

ddd

周中某天的缩写名称,在 AbbreviatedDayNames 中定义。

dddd

周中某天的完整名称,在 DayNames 中定义。

f、%f

秒的小数精度为一位。其余数字被截断。如果此格式模式没有与其他格式模式组合,应用程序将指定“%f”。

ff

秒的小数精度为两位。其余数字被截断。

fff

秒的小数精度为三位。其余数字被截断。

ffff

秒的小数精度为四位。其余数字被截断。

fffff

秒的小数精度为五位。其余数字被截断。

ffffff

秒的小数精度为六位。其余数字被截断。

fffffff

秒的小数精度为七位。其余数字被截断。

F、%F

显示秒的小数部分的最高有效数字。如果该数字为零,则不显示任何内容。如果此格式模式没有与其他格式模式组合,应用程序将指定“%F”。

FF

显示秒的小数部分的两个最高有效数字。但是,不显示尾随的零(两个零数字)。

FFF

显示秒的小数部分的三个最高有效数字。但是,不显示尾随的零(三个零数字)。

FFFF

显示秒的小数部分的四个最高有效数字。但是,不显示尾随的零(四个零数字)。

FFFFF

显示秒的小数部分的五个最高有效数字。但是,不显示尾随的零(五个零数字)。

FFFFFF

显示秒的小数部分的六个最高有效数字。但是,不显示尾随的零(六个零数字)。

FFFFFFF

显示秒的小数部分的七个最高有效数字。但是,不显示尾随的零(七个零数字)。

gg

时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。

h、%h

12 小时制的小时。一位数的小时数没有前导零。如果此格式模式没有与其他格式模式组合,应用程序将指定“%h”。

hh

12 小时制的小时。一位数的小时有一个前导零。

H、%H

24 小时制的小时。一位数的小时数没有前导零。如果此格式模式没有与其他格式模式组合,应用程序将指定“%H”。

HH

24 小时制的小时。一位数的小时有一个前导零。

K

Kind 属性的不同值,即本地、Utc 或未指定。

m、%m

分钟。一位数的分钟数没有前导零。如果此格式模式没有与其他格式模式组合,应用程序将指定“%m”。

mm

分钟。一位数的分钟有一个前导零。

M、%M

月份数字。一位数的月份没有前导零。如果此格式模式没有与其他格式模式组合,应用程序将指定“%M”。

MM

月份数字。一位数的月份有一个前导零。

MMM

月份的缩写名称,在 AbbreviatedMonthNames 中定义。

MMMM

月份的完整名称,在 MonthNames 中定义。

s、%s

秒。一位数的秒数没有前导零。如果此格式模式没有与其他格式模式组合,应用程序将指定“%s”。

ss

秒。一位数的秒有一个前导零。

t、%t

在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。 如果此格式模式没有与其他格式模式组合,应用程序将指定“%t”。

tt

在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。 对于需要维护 AM 与 PM 之间的差异的语言,应用程序应使用此格式模式。以日语为例,其 AM 和 PM 指示符的差异点为第二个字符,而非第一个字符。

y、%y

不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。如果此格式模式没有与其他格式模式组合,应用程序将指定“%y”。

yy

不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。

yyy

三位数的年份。如果年份小于 100,则会以带前导零的方式显示。

yyyy

包括纪元的四位或五位数的年份(取决于所使用的日历)。对于不够四位数的年份,将使用前导零填充。泰国佛历和朝鲜历采用五位数的年份。对于具有五位数的日历,选择“yyyy”模式的用户将看到不带前导零的所有这五位数。例外情况:对于日本历和台湾日历,其行为始终都像是用户选择了“yy”。

yyyyy

五位数的年份。对于不够五位数的年份,将使用前导零填充。例外情况:对于日本历和台湾日历,其行为始终都像是用户选择了“yy”。

yyyyyy

六位数的年份。对于不够六位数的年份,将使用前导零填充。例外情况:对于日本历和台湾日历,其行为始终都像是用户选择了“yy”。此模式可不断续加“y”,从而形成一个更长的字符串,这时将需要使用更多的前导零。

z、%z

时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。如果此格式模式没有与其他格式模式组合,应用程序将指定“%z”。

zz

时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时有一个前导零。例如,太平洋标准时间是“-08”。

zzz

完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。

:

在 TimeSeparator 中定义的默认时间分隔符。

/

在 DateSeparator 中定义的默认日期分隔符。

c

其中 c 是格式模式(如果单独使用)。 若要使用格式模式“d”、“f”、“F”、“h”、“m”、“s”、“t”、“y”、“z”、“H”、或“M”本身,应用程序应指定“%d”、“%f”、“%F”、“%h”、“%m”、“%s”、“%t”、“%y”、“%z”、“%H”或“%M”。

如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。

c

其中 c 是任意字符。 照原义显示字符。若要显示反斜杠字符,应用程序应使用“\\”。

只有上面第二个表中列出的格式模式可用于创建自定义模式。第一个表中列出的标准格式模式只用于创建标准模式。自定义模式的长度至少为两个字符,例如:

  • DateTime.ToString("d") 返回 DateTime 值;“d”是标准短日期模式。

  • DateTime.ToString("%d") 返回月中的某天;“%d”是自定义模式。

  • DateTime.ToString("d ") 返回月中的某天,并在其后面跟有一个空白字符;“d ”是自定义模式。

应用程序只能为固定区域性或特定区域性创建 DateTimeFormatInfo 对象或 NumberFormatInfo 对象,但不能为非特定区域性创建这些对象。 有关固定区域性、特定区域性和非特定区域性的更多信息,请参见 CultureInfo 类。

该类实现 ICloneable 接口以启用 DateTimeFormatInfo 对象的复制。 它还实现 IFormatProvider 以便为应用程序提供格式化信息。

示例

下面的代码示例将输出 en-US 区域性的不同格式模式。它还会显示与这些格式模式关联的属性值。

VB
C#
C++
F#
JScript
打印
using System;
using System.Globalization;public class SamplesDTFI  {public static void Main()  {// Creates and initializes a DateTimeFormatInfo associated with the en-US culture.DateTimeFormatInfo myDTFI = new CultureInfo( "en-US", false ).DateTimeFormat;// Creates a DateTime with the Gregorian date January 3, 2002 (year=2002, month=1, day=3).// The Gregorian calendar is the default calendar for the en-US culture.DateTime myDT = new DateTime( 2002, 1, 3 );// Displays the format pattern associated with each format character.Console.WriteLine( "FORMAT  en-US EXAMPLE" );Console.WriteLine( "CHAR    VALUE OF ASSOCIATED PROPERTY, IF ANY\n" );Console.WriteLine( "  d     {0}", myDT.ToString("d", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.ShortDatePattern, "(ShortDatePattern)" );Console.WriteLine( "  D     {0}", myDT.ToString("D", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.LongDatePattern, "(LongDatePattern)" );Console.WriteLine( "  f     {0}\n", myDT.ToString("f", myDTFI) );Console.WriteLine( "  F     {0}", myDT.ToString("F", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.FullDateTimePattern, "(FullDateTimePattern)" );Console.WriteLine( "  g     {0}\n", myDT.ToString("g", myDTFI) );Console.WriteLine( "  G     {0}\n", myDT.ToString("G", myDTFI) );Console.WriteLine( "  m     {0}", myDT.ToString("m", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.MonthDayPattern, "(MonthDayPattern)" );Console.WriteLine( "  M     {0}", myDT.ToString("M", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.MonthDayPattern, "(MonthDayPattern)" );Console.WriteLine( "  o     {0}\n", myDT.ToString("o", myDTFI) );Console.WriteLine( "  r     {0}", myDT.ToString("r", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.RFC1123Pattern, "(RFC1123Pattern)" );Console.WriteLine( "  R     {0}", myDT.ToString("R", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.RFC1123Pattern, "(RFC1123Pattern)" );Console.WriteLine( "  s     {0}", myDT.ToString("s", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.SortableDateTimePattern, "(SortableDateTimePattern)" );Console.WriteLine( "  t     {0}", myDT.ToString("t", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.ShortTimePattern, "(ShortTimePattern)" );Console.WriteLine( "  T     {0}", myDT.ToString("T", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.LongTimePattern, "(LongTimePattern)" );Console.WriteLine( "  u     {0}", myDT.ToString("u", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.UniversalSortableDateTimePattern, "(UniversalSortableDateTimePattern)" );Console.WriteLine( "  U     {0}\n", myDT.ToString("U", myDTFI) );Console.WriteLine( "  y     {0}", myDT.ToString("y", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.YearMonthPattern, "(YearMonthPattern)" );Console.WriteLine( "  Y     {0}", myDT.ToString("Y", myDTFI) );Console.WriteLine( "        {0} {1}\n", myDTFI.YearMonthPattern, "(YearMonthPattern)" );}}/*
This code produces the following output.FORMAT  en-US EXAMPLE
CHAR    VALUE OF ASSOCIATED PROPERTY, IF ANYd     1/3/2002M/d/yyyy (ShortDatePattern)D     Thursday, January 03, 2002dddd, MMMM dd, yyyy (LongDatePattern)f     Thursday, January 03, 2002 12:00 AMF     Thursday, January 03, 2002 12:00:00 AMdddd, MMMM dd, yyyy h:mm:ss tt (FullDateTimePattern)g     1/3/2002 12:00 AMG     1/3/2002 12:00:00 AMm     January 03MMMM dd (MonthDayPattern)M     January 03MMMM dd (MonthDayPattern)o     2002-01-03T00:00:00.0000000r     Thu, 03 Jan 2002 00:00:00 GMTddd, dd MMM yyyy HH':'mm':'ss 'GMT' (RFC1123Pattern)R     Thu, 03 Jan 2002 00:00:00 GMTddd, dd MMM yyyy HH':'mm':'ss 'GMT' (RFC1123Pattern)s     2002-01-03T00:00:00yyyy'-'MM'-'dd'T'HH':'mm':'ss (SortableDateTimePattern)t     12:00 AMh:mm tt (ShortTimePattern)T     12:00:00 AMh:mm:ss tt (LongTimePattern)u     2002-01-03 00:00:00Zyyyy'-'MM'-'dd HH':'mm':'ss'Z' (UniversalSortableDateTimePattern)U     Thursday, January 03, 2002 8:00:00 AMy     January, 2002MMMM, yyyy (YearMonthPattern)Y     January, 2002MMMM, yyyy (YearMonthPattern)*/
继承层次结构
System .Object 
    System.Globalization .DateTimeFormatInfo 
线程安全
此类型的任何公共  static (在 Visual Basic 中为  Shared ) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
平台

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Xbox 360, Zune

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见 .NET Framework 系统要求。
版本信息

.NET Framework

受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 

.NET Framework Client Profile

受以下版本支持:4 

XNA Framework

受以下版本支持:3.0、2.0、1.0 
请参见

参考

DateTimeFormatInfo 成员
System.Globalization 命名空间
DateTime
Calendar
CultureInfo

其他资源

格式化类型
标准日期和时间格式字符串
自定义日期和时间格式字符串

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cisco PIX防火墙的配置及注解完全手册

cisco PIX防火墙的配置及注解完全手册 PIX Version 6.3(1)interface ethernet0 auto 设定端口0 速率为自动interface ethernet1 100full 设定端口1 速率为100兆全双工interface ethernet2 auto 设定端口2 速率为自动nameif ethernet0 outside security0 设 定端口0 名称为 out…

保姆级!!前端必会Taro入门级教学!!

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注前端小歌谣获取前端知识 本文将介绍 Taro 是如何从一个为了解决小程序开发问题的框架演变成一个多端统一开发框架的。 使用 React 语法来写小程序 谈一谈小程序开发 微信小程序为我们的业务提供了一种新的展现形态&…

js获取用户当前所在城市(ip)

被安利到一个是搜狐家查询ip地址的接口&#xff1a; http://pv.sohu.com/cityjson?ieutf-8 直接打开效果如下&#xff1a; 依照惯例&#xff0c;例子用法给大家放上来&#xff1a; <script src"http://pv.sohu.com/cityjson?ieutf-8"></script> <…

关于c++跟java区别的几个总结

之前c&#xff0c;最近java有点混乱&#xff0c;总结一下&#xff1a; 1.在写java程序的时候会发现&#xff0c;假如你自己写了一个类class A{。。。}&#xff0c;这个时候你要实例化&#xff0c;必须new一个&#xff1b;但是在c里面就不用&#xff0c;c中你可以直接声明A a; 为…

命令行编译c#源程序

开发环境&#xff1a;WinXP VS2010(C#) using System;public class Test {public static int Main(string[] args){string str DateTime.Now.ToString("HH:mm:ss"); // 时分秒(各占两位)Console.WriteLine("当前时间&#xff1a;{0}", str);return 0;} …

来自山西机器人乐队_格力:中国第一支工业机器人乐队重磅亮相

原标题&#xff1a;格力&#xff1a;中国第一支工业机器人乐队重磅亮相一直以来&#xff0c;格力的董明珠可谓是媒体的关注焦点&#xff0c;前有董小姐与雷军的10亿赌约&#xff0c;后有格力进军手机行业&#xff0c;现在格力更是涉足汽车以及芯片行业&#xff0c;而格力的智能…

Samba将Linux集成到Windows网络

&#xff08;一&#xff09;Samba是一个与Windows操作系统兼容的文件与打印共享服务器,通过在Linux服务器上配置Samba,可以使Linux系统集成到Windows网络中。在网络中,用户可以使用多种方法实现数据共享,例如常见的Web服务、FTP服务。使用这两种网络服务的好处是&#xff1a;它…

Vue、Element-ui项目中如何使用Iconfont(阿里图标库)

我们使用element-ui、vue开发网站的时候&#xff0c;往往图标是起着很重要的作用。 1.傻瓜式引用&#xff1a;由于这种方法及其简单 省去了很多繁琐的步骤&#xff0c; a.引入项目生成的&#xff0c;图标地址。 b.使用 推荐使用这种&#xff0c;详情请看文档&#xff01;&…

Unity与Android交互

转载自 http://www.narkii.com/club/thread-320335-1.html 这段时间在研究嵌入sdk&#xff0c;途中遇到不少问题和坑&#xff0c;在这就不一一说了。嵌入sdk是比较常见的吧&#xff0c;如接入广告啊&#xff0c; 新浪的分享...... 这些都需要接入sdk的。&#xff08;这些我在这…

自定义overflow:auto的滚动条样式

自定义overflow:auto的滚动条样式

angular路由传递参数_Angular路由——在路由时候传递数据

有3种方式1、在查询参数中传递数据2、在路由路径中传递数据定义路由路径时就要指定参数名字&#xff0c;在实际路径中携带参数。3、在路由配置中传递数据一、在查询参数中传递数据第一步&#xff1a;修改模版中商品详情链接&#xff0c;带一个指令queryParams商品详情效果&…

python自动登录百度空间

参考: http://blog.163.com/sunzs20113126/blog/static/3706880920120105131652/ 开发环境&#xff1a;Fedora12 Python2.6.2 #!/usr/bin/python # coding: GBKimport urllib,urllib2,httplib,cookielibdef auto_login_hi(url,name,pwd):url_hi"http://passport.baidu.c…

SQL WITH NOCHECK 和 CLUSTERED | NONCLUSTERED

ALTER TABLE [dbo].[atr_cont_b] WITH NOCHECK ADD CONSTRAINT [PK_atr_cont_b] PRIMARY KEY CLUSTERED ( [id_cont_b] ) ON [PRIMARY] GO WITH NOCHECK: 指定表中的数据是否用新添加的或重新启用的 FOREIGN KEY 或 CHECK 约束进行验证。如果没有指定&#xff0c;对于新约…

PHP 文件上传全攻略

PHP文件上传功能一般都是大家使用事先封装好的函数&#xff0c;要用的时候直接使用已封装的函数就完了&#xff0c;但有时候不能使用封装函数&#xff0c;还真不大能记住PHP的上传相关的东西&#xff0c;在此做个总结&#xff0c;以备后用。1.表单部分 允许用户上传文件&#x…

JS事件-鼠标滚轮事件

JS事件-鼠标滚轮事件 vue 监听滚轮滚动事件

java语言程序设计教程翁恺第二版课后答案_《JAVA语言程序设计教程(第2版)/翁恺 肖少拥》翁恺,肖少拥著【摘要 书评 在线阅读】-苏宁易购图书...

第1章 Java语言概述1.1 Java的历史1.2 Java程序运行环境与特点1.2.1 跨平台(Cross Platform)&#xff0f;可移植性(Portablc)1.2.2 运行效率1.2.3 稳 定1.2.4 简 单1.2.5 动 态1.3 面向对象的基本概念1.3.1 对 象1.3.2 面向对象1.3.3 类1.4 面向对象程序设计的…

Python网页抓取、模拟登录

From: http://www.cnblogs.com/bboy/archive/2010/10/29/1864537.html 用python抓取网页是非常简单的事&#xff0c;简单的几行代码就可以解决。。。这里稍微记录一下 需要引用的包有主要是 urllib2&#xff0c;urllib也可以引入&#xff0c;具体 看代码 #--------------------…

深入分析Flex [Bindable] (总结)

[Bindable]大概又是Flex用得最多的元数据了。刚开始用用确实好简单&#xff0c;效率真是没的说。不过这几天用着却碰到了些问题&#xff0c;我自己搜集了些资料&#xff0c;想着有必要在blog里总结一下吧。啥是元数据&#xff08;metadata&#xff09;知道就跳过吧。今天不晓得…