C# 基础 - string 和 Datetime
1. string
1. 格式化填充
string str = "this {0} a {1}";
Console.WriteLine(string.Format(str, "is", "boy")); // this is a boy
2. 将数据合并成字符串
string[] strArr = new string[3] { "1", "2", "3"};
List<string> strList = new List<string>() { "1", "2", "3" };
string str = string.Join("--", strArr); //"1--2--3"
string str = string.Join("--", strList); //"1--2--3"
3. 分割
分隔符可为 new char[]{'','',..} 或 new string[]{"", "", ..}
可设置最多分割成多少项、分割后是否自动过滤掉空值
string str = "1,2.3,,4";
string[] sp = str.Split(new char[]{',', '.'}); //{"1", "2", "3", "", "4"}
string[] sp = str.Split(new string[]{","}); //{"1","2.3","","4"}
string[] sp = str.Split(new string[]{","}, StringSplitOptions.RemoveEmptyEntries); //{"1","2.3","4"}
4. 检查是否包含
if (str.Contain(content))
5. 起始字符串
string str = "www.abcd.com";
str.StartWith("www"); //true
str.StartWith("abcd"); //false
str.StartWith("abcd", 4); //true
6. 空或只有空格
string.Empty 和 "" 都指向固定的静态只读内存区域
而 null 只在栈上分配了空间,堆上没有。
string.IsNullOrEmpty(str); // ""、string.Empty、null 为 true
string.IsNullOrWhiteSpace(str); //""、" "、string.Empty、null 为 true
7. 替换
str = str.Replace(oldSubString, newSubString);
8. 删除
str = str.Remove(beginIndex, length);
9. 截取
string sub = str.Substring(startIndex);
string sub = str.Substring(startIndex, length);
10. 返回匹配到的第一个索引
int i = str.IndexOf(charOrString);
int i = str.IndexOf(charOrString, startIndex);
int i = str.IndexOf(charOrString, startIndex, searchLength);
int i = str.LastIndexOf(charOrString);
int i = str.LastIndexOf(charOrString, startIndex);
int i = str.LastIndexOf(charOrString, startIndex, searchLength);
11. 装换数字
string s = "123";
int i = int.Parse(s); // string.IsNullOrWhiteSpace(s) 不能为空,或存在非数字的其他字符
12. 前端截取
CharacterEllipsis 在字符边界修整文本,用...代替
WordEllipsis 在单词边界修整文本,用...代替
<TextBlock TextTrimming="None/CharacterEllipsis/WordEllipsis" />
13. 字体
<Grid.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- 引入字体 -->
<ResourceDictionary>
<FontFamily x:Key="Consolasss">/Presentation/Resources/font/#consolas</FontFamily>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Grid.Resources>
C:\Windows\Font\xx.TTF
根目录下 /Presentation/Resources/font/xx.TTF,代码是写成 #xx
2. DateTime
DateTime d1 = DateTime.Now; //{2019/9/17 20:58:56}
DateTime d2 = DateTime.UtcNow; //{2019/9/17 12:58:56}
int d3 = DateTime.DaysInMonth(2000, 11); //30
TimeSpan d4 = DateTime.Now.TimeOfDay; //{20:58:56.6098659}
DateTime ds = DateTime.Now.AddYears(-3).AddMonths(3).AddDays(-1).AddHours(3).AddMinutes(5).AddSeconds(3).AddMilliseconds(10);
TimeSpan d5 = DateTime.Now - ds;//{1005.20:54:56.9900000}
= DateTime.Now.Subtract(ds);
1. DateTime to String
DateTime dt = DateTime.Now;
string str = dt.ToString("yyyy-MM-dd HH:mm:ss"); //2019-09-17 21:05:55
string str = dt.ToString(); //2019/9/17 21:05:55
string str = string.Format("{0:yyyy-MM-dd}", dt);//2019-09-17
string str = string.Format("{0:yyyy-MM-dd HH:mm:ss}", dt);//2019-09-17 21:05:55
string str = dt.ToShortDateString(); // 2019/09/17
string str = dt.ToShortTimeString(); // 21:07
string str = dt.ToLongDateString(); // 2019年9月17日
string str = dt.ToLongTimeString(); // 21:07:39
2. String to DateTime
string str = "2019-09-17";
string str = "2019-09-17 21:12:04";
string str = "2019/09/17 21:12:04";
DateTime dt = Convert.ToDateTime(str);
3. DateTime to 时间戳
TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); //{18156.21:20:31}
var df = Convert.ToInt64(ts.TotalSeconds).ToString(); //"1568755231"
4. TimeSpan to DateTime
TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); //{18156.21:20:31}
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0) + ts; //{2019/9/17 21:20:31}
5. 时间戳 to DateTime
TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
double sec = Convert.ToDouble(ts.TotalSeconds); //1568755231
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); //{1970/1/1 0:00:00}
dateTime = dateTime.AddSeconds(sec); // {2019/9/17 21:20:31}
3. TimeSpan
public static TimeSpan FromDays(double value);
public static TimeSpan FromHours(double value);
public static TimeSpan FromMinutes(double value);
public static TimeSpan FromSeconds(double value);
public static TimeSpan FromMilliseconds(double value);
public static TimeSpan FromTicks(long value);
var aa = DateTime.Now.Ticks; //637359305824346507
var bb = TimeSpan.FromTicks(aa); //{737684.09:09:42.4346507}
4. enum
enum Day { a = 8, b = 6, c, e, f = 7, g };
int a = (int)Day.a; //8
int b = (int)Day.e; //8
int c = (int)Day.g; //8
int d = (int)Day.f; //7
如果自身没有被赋值,就从上一个有赋值的开始算起,第一个默认为 0。
5. XAML 综合使用
<TextBlock Text="{Binding Num, Source={x:Static local:Common.Obj}, StringFormat={}{0}辆}" />
<TextBlock Text="{Binding ToDate, Source={x:Static local:Common.Obj}, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" />
<TextBlock Text="{Binding ToDate, Source={x:Static local:Common.Obj}, StringFormat=yyyy-MM-dd HH:mm:ss:fff}" />
public static class Common
{
public static Object Obj { get; set; }
}
public partial class Window2 : Window
{
public Window2()
{
Common.Obj = new { Num = 34 , ToDate = DateTime.Now};
InitializeComponent();
}
}
C# 基础 - string 和 Datetime的更多相关文章
- string转DateTime(时间格式转换)
1.不知道为什么时间在数据库用varchar(8)来保存,例如"19900505",但是这样的保存格式在处理时间的时候是非常不方便的. 但是转换不能用Convert.ToDateT ...
- Java基础String的方法
Java基础String的方法 字符串类型写法格式如下: 格式一: String 变量名称; 变量名称=赋值(自定义或传入的变量值); 格式二: String 变量名称=赋值(自定义或传入的变量值); ...
- Java基础 String 裸暴力算法- 五个小练习
之间的博客,承上启下: Java基础 String/StringBuff 常用操作方法复习/内存分析 Java数组直接选择排序.sort()排序 Java基础 String 算法 - 五个练 ...
- Java基础—String构造方法
Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象 ...
- 【2-26】string/math/datetime类的定义及其应用
一string类 (1)字符串.Length Length作用于求字符串的长度,返回一个int值 (2)字符串.TrimStart(); TrimStart():可删除前空格,返回一个stri ...
- 十四、Java基础---------String、StringBuffer、StringBuilder基本应用
在前面的博客中曾提及Java的数据类型分为基本数据类型,和引用数据类型,而String便是最常见的应用数据类型,本文将着重介绍这一引用数据类型的用法. String 字符串 String类是对 ...
- Java基础-String、StringBuffer、StringBuilder
看下面这段代码: public class Main { public static void main(String[] args) { String string = ""; ...
- C# - string 转为 DateTime(自定义)
上代码: string dt = " 1 11 1961"; DateTime day; System.Globalization.DateTimeFormatInfo dtFor ...
- 再探Java基础——String.format(String format, Object… args)的使用
最近看到类似这样的一些代码:String.format("参数%s不能为空", "birthday"); 以前还没用过这功能不知咐意思,后研究了一下,详细讲解如 ...
随机推荐
- CentOS6下mysql的安装与配置
CentOS是免费的.开源的.可以重新分发的开源操作系统,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一. ...
- [Python] Pandas 对数据进行查找、替换、筛选、排序、重复值和缺失值处理
目录 1. 数据文件 2. 读数据 3. 查找数据 4. 替换数据 4.1 一对一替换 4.2 多对一替换 4.3 多对多替换 5. 插入数据 6. 删除数据 6.1 删除列 6.2 删除行 7. 处 ...
- Docker应用场景和局限性
Docker有哪些好的特性?作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势.首先, Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多.其次, Docke ...
- bzoj1013球形空间产生器sphere 高斯消元(有系统差的写法
Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁 ...
- 在线可视化设计网站 & 在线编辑器
在线可视化设计网站 在线编辑器:海报编辑器.H5 编辑器.视频编辑器.音频编辑器.抠图编辑器 在线 拖拽 可视化 编辑器 Canvas WebGL Canva With Canva, anyone c ...
- 安装 Angular Material UI
文档 调色板 安装 ng add @angular/material ? Choose a prebuilt theme name, or "custom" for a custo ...
- NGK以强大的创新能力赋予NGK公链超级实用的特性
公链从大趋势看是一个不断迭代的过程,不管是共识算法.网络架构.开发者协议都在一代一代不断完善跟创新. NGK公链作为公链赛道上的后起之秀,对于主流公链技术的局限性以及下一代公链技术的发展方向都有非常清 ...
- 源码分析:Phaser 之更灵活的同步屏障
简介 Phaser 是 JDK 1.7 开始提供的一个可重复使用的同步屏障,功能类似于CyclicBarrier和CountDownLatch,但使用更灵活,支持对任务的动态调整,并支持分层结构来达到 ...
- Python基础之:数字字符串和列表
目录 简介 数字 字符串 字符串对象str 列表 简介 Python的主要应用是进行科学计算,科学计算的基础就是数字,字符串和列表.本文将会详细的给大家介绍一下这三个数据类型的使用情况. 数字 数字是 ...
- idea分布式创建子模块后不能创建java文件
问题描述:多模块情况下,创建java文件,找不到java类,如下图,即使手动创建,在里面编写内容也没有任何反应. 解决方案:右键将文件标记为Sources Root便可以了,如果想要标记为资源文件的话 ...