首页 > 技术文章 > string字符串格式

wesson2019-blog 2020-08-07 10:49 原文

显示一位小数

double val = 1.034;
var v1 = val.ToString("#.#");          // 1
var v2 = string.Format("{0:f1}", val); // 1.0     等价于 $"{val:f1}"

前面不足位数补0

i.ToString().PadLeft(12,'0');或
$"{i:D12}";

后面不足位数补0

i.ToString().PadRight(12,'0');

左对齐

string.Format("the value is {0,-12:f3}",123.45);

右对齐

string.Format("the value is {0,12:f3}",123.45);

其中:12表示占位符,3表示浮点精度

特殊操作

剔除文件名字符串中不合法的字符

public static string RemoveInvalidFileNameChars(string src)
{
    StringBuilder rslt = new StringBuilder(src);
    foreach (var c in Path.GetInvalidFileNameChars())
    {
        rslt.Replace(c.ToString(), string.Empty);
    }
    return rslt.ToString();
}

剔除路径字符串中不合法的字符


public static string RemoveInvalidPathChars(string src)
{
    StringBuilder rslt = new StringBuilder(src);
    foreach (var c in Path.GetInvalidPathChars())
    {
        rslt.Replace(c.ToString(), string.Empty);
    }
    return rslt.ToString();
}

DateTime字符串形式

yyyyMMddHHmmss

/// <summary>
/// DateTime字符串形式(yyyyMMddHHmmss)
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string Date2yyyyMMddHHmmss(DateTime dt)
{
    return dt.ToString("yyyyMMddHHmmss");
}

HHmmss

/// <summary>
/// DateTime字符串形式(HHmmss)
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string Date2HHmmss(DateTime dt)
{
    return dt.ToString("HHmmss");
}

日期格式的字符串

显示:yyyy-MM-dd

/// <summary>
/// 日期格式的字符串显示成:yyyy-MM-dd
/// </summary>
/// <param name="dateTimeStr">日期格式的字符串</param>
/// <param name="dateTimeFormatStr">对应的字符串形式,默认yyyyMMddHHmmss</param>
/// <returns></returns>
public static string Str2yyyyMMdd(string dateTimeStr, string dateTimeFormatStr = "yyyyMMddHHmmss")
{
    if (DateTime.TryParseExact(dateTimeStr, dateTimeFormatStr, System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out DateTime dt))
    {
        return dt.ToString("yyyy-MM-dd");
    }
    return string.Empty;
}

显示:HH:mm:ss

/// <summary>
/// 日期格式的字符串显示成:HH:mm:ss
/// </summary>
/// <param name="dateTimeStr">日期格式的字符串</param>
/// <param name="dateTimeFormatStr">对应的字符串形式,默认HHmmss</param>
/// <returns></returns>
public static string Str2HHmmss(string dateTimeStr, string dateTimeFormatStr = "HHmmss")
{
    if (DateTime.TryParseExact(dateTimeStr, dateTimeFormatStr, System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out DateTime dt))
    {
        return dt.ToString("HH:mm:ss");
    }
    return string.Empty;
}

字符串转成标准日期

/// <summary>
/// 日期格式的字符串转成标准日期
/// </summary>
/// <param name="dateTimeStr">日期格式的字符串</param>
/// <param name="dateTimeFormatStr">对应的字符串形式,默认yyyyMMddHHmmss</param>
/// <returns></returns>
public static DateTime Str2DateTime(string dateTimeStr, string dateTimeFormatStr = "yyyyMMddHHmmss")
{
    if (DateTime.TryParseExact(dateTimeStr, dateTimeFormatStr, System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out DateTime dt))
    {
        return dt;
    }
    return DateTime.MinValue;
}

推荐阅读