首页 > 编程语言 >最全ToString(“X2“)和ToString(“X“)详解含义及使用C#.ToString()格式大全

最全ToString(“X2“)和ToString(“X“)详解含义及使用C#.ToString()格式大全

时间:2022-12-11 23:34:26浏览次数:52  
标签:string C# Text DateTime 一位数 格式 X2 ToString


ToString("X2") 为C#中的字符串格式控制符

大写X:ToString("X2")即转化为大写的16进制。
小写x:ToString("x2")即转化为小写的16进制。
2表示每次输出两位,不足2位的前面补0,如 0x0A 如果没有2,就只会输出0xA
假设有两个数10和26,正常情况十六进制显示0xA、0x1A,这样看起来不整齐,为了好看,可以指定"X2",这样显示出来就是:0x0A、0x1A。

 


 

目录

​​实例代码:​​

​​C#.ToString()格式大全​​

​​第一种​​

​​C 或 c货币​​

​​D 或 d十进制数​​

​​E 或 e科学型​​

​​F 或 f固定点​​

​​G 或 g常规​​

​​N 或 n数字​​

​​X 或 x十六进制​​

​​第二种​​

​​C 货币​​

​​D  十进制数​​

​​E科学型​​

​​F  固定点​​

​​G 常规​​

​​N 数字​​

​​X  十六进制​​

​​常用格式举例:​​

​​(1) int i=12345;​​

​​(2) int i=123;​​

​​(3)double i=12345.6789;​​

​​(4)double i=12345.6789;​​

​​(5)double i=0.126;​​

​​(6) DateTime dt =new DateTime(2003,5,25);​​

​​(7) int i=123;​​

​​补充:​​

​​1、C#中用最简单的方法把数字(不含小数)转换为千分位格式:​​

​​2、C#中把数字转换成带两位小数的千分位字符:​​

​​ DateTime.ToString()用法详解​​



 

实例代码:


 

利用ToString("X2")  生成 AES KEY:

需要添加using System.Security.Cryptography;

private static string ConvertToHexString(Byte[] byteArray)
{
// Convert the byte array to hexadecimal string
var sb = new StringBuilder(byteArray.Length);
for (int i = 0; i < byteArray.Length; i++)
{
sb.Append(byteArray[i].ToString("X2"));
}
return sb.ToString();
}

private static void test()
{
var aesM = new AesManaged();
for (int i = 1; i <= NUM_AES_KEYS; i++)//NUM_AES_KEYS 为生成AES KEY 的数量
{
aesM.GenerateKey();
byte[] result = aesM.Key;
string hexString = ConvertToHexString(result);
Console.WriteLine("AES KEY: {0} ", hexString);
}
}

结果如下图:

最全ToString(“X2“)和ToString(“X“)详解含义及使用C#.ToString()格式大全_Text

 


C#.ToString()格式大全



C



货币



2.5.ToString("C")



¥2.50



D



十进制数



25.ToString("D5")



00025



E



科学型



25000.ToString("E")



2.500000E+005



F



固定点



25.ToString("F2")



25.00



G



常规



2.5.ToString("G")



2.5



N



数字



2500000.ToString("N")



2,500,000.00



X



十六进制



255.ToString("X")



FF


 

stringstr1=string.Format("{0:N1}",56789);               //result: 56,789.0

stringstr2=string.Format("{0:N2}",56789); //result: 56,789.00

stringstr3=string.Format("{0:N3}",56789); //result: 56,789.000

stringstr8=string.Format("{0:F1}",56789); //result: 56789.0

stringstr9=string.Format("{0:F2}",56789); //result: 56789.00

stringstr11 =(56789 /100.0).ToString("#.##"); //result: 567.89

stringstr12 =(56789 / 100).ToString("#.##"); //result: 567

第一种

C 或 c货币

Console.Write("{0:C}", 2.5);//$2.50

Console.Write("{0:C}", -2.5);//($2.50)

D 或 d十进制数

Console.Write("{0:D5}", 25);//00025

E 或 e科学型

Console.Write("{0:E}", 250000);//2.500000E+005

F 或 f固定点

Console.Write("{0:F2}", 25);//25.00

Console.Write("{0:F0}", 25); //25

G 或 g常规

Console.Write("{0:G}", 2.5);//2.5

N 或 n数字

Console.Write("{0:N}", 2500000);//2,500,000.00

X 或 x十六进制

Console.Write("{0:X}", 250); //FA

Console.Write("{0:X}", 0xffff);//FFFF
 

第二种

C 货币

 2.5.ToString("C")  ¥2.50

D  十进制数

25.ToString("D5")    00025

E科学型

 25000.ToString("E")   2.500000E+005

F  固定点

 25.ToString("F2")    25.00

G 常规

 2.5.ToString("G")     2.5

N 数字

 2500000.ToString("N")      2,500,000.00

X  十六进制

 255.ToString("X")     FF
 

formatCode是可选的格式化代码字符串。(详细内容请搜索“格式化字符串”查看)

必须用“{”和“}”将格式与其他字符分开。如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,即:“{{”或者“}}”。

 

常用格式举例:

(1) int i=12345;

this.textBox1.Text=i.ToString();

//结果 12345(this指当前对象,或叫当前类的实例)

this.textBox2.Text=i.ToString("d8");

//结果 00012345

(2) int i=123;

double j=123.45;

string s1=string.Format("the value is{0,7:d}",i);

string s2=string.Format("the value is{0,7:f3}",j);

this.textBox1.Text=s1 ;

//结果 the value is 123

this.textBox2.Text=s2;

//结果 the value is123.450

(3)double i=12345.6789;

this.textBox1.Text=i.ToString("f2");//结果 12345.68

this.textBox2.Text=i.ToString("f6");

//结果 12345.678900

(4)double i=12345.6789;

this.textBox1.Text=i.ToString("n");//结果 12,345.68

this.textBox2.Text=i.ToString(“n4”); //结果12,345.6789

(5)double i=0.126;

string s=string.Format("the value is{0:p}",i);

this.textBox1.Text=i.ToString("p");//结果 12.6%

this.textBox2.Text=s; //结果 the valueis 12.6%

(6) DateTime dt =new DateTime(2003,5,25);

this.textBox1.Text=dt.ToString("yy.M.d");

//结果 03.5.25

this.textBox2.Text=dt.ToString(“yyyy年M月”);

//结果 2003年5月

Convert.ToDateTime("2005/12/2222:22:22").ToString("yyyy/MM/dd HH:mm:ss")

"2005/12/22 22:22:22"

(7) int i=123;

double j=123.45;

strings=string.Format("i:{0,-7},j:{1,7}",i,j);

//-7表示左对齐,占7位

this.textBox1.Text=s ;

//结果i:123 ,j: 123.45
 

补充:

1、C#中用最简单的方法把数字(不含小数)转换为千分位格式:

     如1234567变成1,234,567

    方法:1234567.ToString("###,###")  或  1234567.ToString("N0")  

2、C#中把数字转换成带两位小数的千分位字符:

    如1234567.891变成1,234,567.89

    方法:String.Format("{0:N}",1234567.891);  //默认为两位小数,如果没有小数位,则小数位补两个0

    或:String.Format("{0:N2}",1234567.891);
 


 DateTime.ToString()用法详解


我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34
如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?
这里将要用到:DateTime.ToString的方法(String, IFormatProvider)
示例:

using System;
using System.Globalization;
String format="D";
DateTime date=DataTime.Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2006

在这里列出了参数format格式详细用法
=======================
格式字符 关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern

下表列出了可被合并以构造自定义模式的模式
========================================
这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”。如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制。

格式模式 说明 :
d 月中的某一天。一位数的日期没有前导零。
dd 月中的某一天。一位数的日期有一个前导零。
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
dddd 周中某天的完整名称,在 DayNames 中定义。
M 月份数字。一位数的月份没有前导零。
MM 月份数字。一位数的月份有一个前导零。
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。
MMMM 月份的完整名称,在 MonthNames 中定义。
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy 包括纪元的四位数的年份。
gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h 12 小时制的小时。一位数的小时数没有前导零。
hh 12 小时制的小时。一位数的小时数有前导零。
H 24 小时制的小时。一位数的小时数没有前导零。
HH 24 小时制的小时。一位数的小时数有前导零。
m 分钟。一位数的分钟数没有前导零。
mm 分钟。一位数的分钟数有一个前导零。
s 秒。一位数的秒数没有前导零。
ss 秒。一位数的秒数有一个前导零。
f 秒的小数精度为一位。其余数字被截断。
ff 秒的小数精度为两位。其余数字被截断。
fff 秒的小数精度为三位。其余数字被截断。
ffff 秒的小数精度为四位。其余数字被截断。
fffff 秒的小数精度为五位。其余数字被截断。
ffffff 秒的小数精度为六位。其余数字被截断。
fffffff 秒的小数精度为七位。其余数字被截断。
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。
z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。
zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。
zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
: 在 TimeSeparator 中定义的默认时间分隔符。
/ 在 DateSeparator 中定义的默认日期分隔符。
% c 其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
/ c 其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“//”。

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

DateTime.ToString( "d") 返回 DateTime 值;“d”是标准短日期模式。
DateTime.ToString( "%d") 返回月中的某天;“%d”是自定义模式。
DateTime.ToString( "d ") 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。

比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式
如要得到2005年06月 这样格式的时间
可以这样写:
date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo)
如此类推.

下面列出一些Asp.net中具体的日期格式化用法:
============================================
1.绑定时格式化日期方法:
<ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " >
<ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE >
</ASP:BOUNDCOLUMN >

2.数据控件如DataGrid/DataList等的件格式化日期方法:
e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();

3.用String类转换日期显示格式:
String.Format( "yyyy-MM-dd ",yourDateTime);

4.用Convert方法转换日期显示格式:
Convert.ToDateTime("2005-8-23").ToString

("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁体数据库

5.直接用ToString方法转换日期显示格式:
DateTime.Now.ToString("yyyyMMddhhmmss");
DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")

6.只显示年月
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")

7.显示时间所有部分,包括:年月日时分秒
<asp:BoundColumn DataField="收款时间" HeaderText="收款时间"
DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}">
</asp:BoundColumn>

用DateTime.ToString(string format)输出不同格式的日期

 

标签:string,C#,Text,DateTime,一位数,格式,X2,ToString
From: https://blog.51cto.com/cplvfx/5928923

相关文章

  • Quick-Fix 通过反射执行任意类目标方法的实现全程实录(中篇)
    全程实录上篇,主要介绍了如何解析传入的String参数为我们目标方法的参数类型和对象,其中主要讲述的是基本类型、Class类型、泛型以及普通的POJO类型转换;我们这一篇,目的则放在......
  • Nuxt.js IIS部署,Nuxt.js 发布部署vue-cli 安装 2020最新 vue 4.0安装
    第一步:服务器安装node.js环境1、安装node.js下载地址​​http://nodejs.cn/download/​​我是全部默认下一步的,安装成功之后运行命令查看是否安装成功如果没有出现版本号,......
  • 如何实现ignite的安全插件(security plugin)
    Ignite可以实现自定义的安全插件,以下实现在2.13.0测试可行。1.如何实现自定义的安全插件第一步:需要定义一个提供插件的类,它会被IgniteKernal在启动时调用,主要实现的是cre......
  • [Impala 使用注意]--调整对应的参数(cdh-5.8.x版本)
    Impala的可伸缩性注意事项本节介绍了您的群集大小和数据量如何影响Impala表的SQL性能和架构设计。通常,增加更多的群集容量可以减少由于内存限制或磁盘吞吐量而造成的问 另......
  • 我的Swagger实例ASP.NET MVC 集成SwaggerUI
      注意:1.在此之前你要确定你已经通过NuGet安装好 Swashbucklev5.6.02.Web项目右键属性-》生成-》勾选XML文档文件,建议用默认路径 3.并且,修改了,项目》App_Start》Swagg......
  • RocketMQ详细配置与使用
    一、MQ介绍1.1为什么要用MQ消息队列是一种“先进先出”的数据结构其应用场景主要包含以下3个方面1)应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建......
  • 用Visual Studio Code和码云 管理代码--【初级全解】2019-11-01
    准备内容​​注册码云(Gitee)​​​,创建一个项目,得到项目url:​​https://gitee.com/cplvfx/CPUIAdmin​​​​下载git​​安装,全都按下一步就行了。​​下载VSCode​​......
  • centos源码编译postgis3.2.1
    前言介绍CentOS8源码编译PostGIS3.2.1版本安装官网官方网站​​https://www.postgis.net/​​​源码下载地址​​https://www.postgis.net/source/​​依赖必须PostgreS......
  • MFC控件使用自己本地的字体文件
    MFC作为一套古老的框架,加载使用本地字体流程也很复杂,网上的资料大多也都不能直接运行。在参考了一些github上现有代码和古代代码之后,实现了加载本地字体文件并显示在指定控......
  • OpenSSL 系列2 --- 搭建CA,签发证书
    一、环境CentOS7OpenSSL3.0.7OpenSSL升级请参考:https://www.cnblogs.com/eagle6688/p/15978628.html工作目录:/etc/pki/CAcd/etc/pki/CA二、CA1.生成CA私钥......