Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#中为Windows窗体应用格式化此日期对象?_C#_.net_Windows Forms Designer - Fatal编程技术网

如何在c#中为Windows窗体应用格式化此日期对象?

如何在c#中为Windows窗体应用格式化此日期对象?,c#,.net,windows-forms-designer,C#,.net,Windows Forms Designer,我正在制作一个简单的Windows窗体应用程序,允许用户根据在文本字段中输入的内容选择任何文件并将其重命名为默认格式的名称 示例:“08_21_2015_DrJohnSmith_HowToSellHomes.mp3”—— 我遇到的问题是,我不知道如何设置日期文本框的格式,以便它以这种格式保存文件: “08_21_2015_DrJohnSmith_HowToSellHomes.mp3” 现在以以下格式保存文件: 2015年8月21日,星期五Drjohnsmith_HowToSellHomes.mp

我正在制作一个简单的Windows窗体应用程序,允许用户根据在文本字段中输入的内容选择任何文件并将其重命名为默认格式的名称

示例:“08_21_2015_DrJohnSmith_HowToSellHomes.mp3”——

我遇到的问题是,我不知道如何设置日期文本框的格式,以便它以这种格式保存文件:

“08_21_2015_DrJohnSmith_HowToSellHomes.mp3”

现在以以下格式保存文件:

2015年8月21日,星期五Drjohnsmith_HowToSellHomes.mp3

我知道这很容易做到,但我是编程新手,本周刚开始学习C#,因此非常感谢您的帮助。这是我的密码。表单图像上方的链接

    using System;
    using System.Windows.Forms;
    using System.IO;

    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void selectFileBtn_Click(object sender, EventArgs e)
            {
                openFileDialog1.ShowDialog();
            }

            private void outputFileBtn_Click(object sender, EventArgs e)
            {
                var outputFolder = outputFileTB;
                folderBrowserDialog1.ShowDialog();
                outputFolder.Text = folderBrowserDialog1.SelectedPath;
            }

            private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
            {
                selectFileTB.Text = openFileDialog1.FileName;
            }

            private void saveBtn_Click(object sender, EventArgs e)
            {
                File.Move(selectFileTB.Text, outputFileTB.Text + "/" + dateTimePicker1.Text + speakerTitleTB.Text + firstNameTB.Text + 
                    lastNameTB.Text + "_" + messageTitleTB.Text + ".txt");     
            }
        }
    }
替换

dateTimePicker1.Text

替换

dateTimePicker1.Text


我看到您使用的是
dateTimePicker1.Text
-它返回用户看到的所选日期值的文本表示形式,这显然不是您想要的:)

首先,通过使用
dateTimePicker1.value
而不是
.Text
提取实际的
DateTime
值,然后使用
DateTime.ToString()
方法并指定一个格式字符串来完全控制生成的内容,如下所示:

dateTime.ToString( "MM_dd_yyyy", CultureInfo.InvariantCulture )
当使用
.ToString
(在日期、数字或大多数值上)时,如果它有一个重载接受
IFormatInfo
,则使用它显式指定
CultureInfo.InvariantCulture
CultureInfo.CurrentCulture
(根据当前的Microsoft FxCop指南)。如果您想在多个平台上实现一致的行为,请务必使用
InvariantCulture
,因为如果您使用
CurrentCulture
,那么输出文本可能不是您所期望的-这对于像
“MM\u dd\u yyyyy”
这样的完全自定义字符串不是问题,但是如果您使用像
“g”这样的标准格式字符串
“d”
然后您将在不同的机器上看到截然不同的结果

顺便说一句,我强烈建议您使用
yyyy-MM-dd
作为日期格式,而不是
MM\u-dd\u-yyyy
这样可以在文本列表中按时间顺序对文件进行排序(例如在Windows的文件资源管理器中),否则您将按月、日、年对文件进行排序,这毫无意义

最后,请注意,格式字符串
MM
表示月份,而
MM
表示分钟

这里有一个参考:

  • 标准格式字符串:
  • 自定义格式字符串:

我看到您使用的是
dateTimePicker1.Text
-它返回用户看到的所选日期值的文本表示形式,这显然不是您想要的:)

首先,通过使用
dateTimePicker1.value
而不是
.Text
提取实际的
DateTime
值,然后使用
DateTime.ToString()
方法并指定一个格式字符串来完全控制生成的内容,如下所示:

dateTime.ToString( "MM_dd_yyyy", CultureInfo.InvariantCulture )
当使用
.ToString
(在日期、数字或大多数值上)时,如果它有一个重载接受
IFormatInfo
,则使用它显式指定
CultureInfo.InvariantCulture
CultureInfo.CurrentCulture
(根据当前的Microsoft FxCop指南)。如果您想在多个平台上实现一致的行为,请务必使用
InvariantCulture
,因为如果您使用
CurrentCulture
,那么输出文本可能不是您所期望的-这对于像
“MM\u dd\u yyyyy”
这样的完全自定义字符串不是问题,但是如果您使用像
“g”这样的标准格式字符串
“d”
然后您将在不同的机器上看到截然不同的结果

顺便说一句,我强烈建议您使用
yyyy-MM-dd
作为日期格式,而不是
MM\u-dd\u-yyyy
这样可以在文本列表中按时间顺序对文件进行排序(例如在Windows的文件资源管理器中),否则您将按月、日、年对文件进行排序,这毫无意义

最后,请注意,格式字符串
MM
表示月份,而
MM
表示分钟

这里有一个参考:

  • 标准格式字符串:
  • 自定义格式字符串:

哇!这太有道理了!谢谢,它很有魅力。一旦我达到15分,我会回来投票,非常感谢!哇!这太有道理了!谢谢,它很有魅力。一旦我达到15分,我会回来投票,非常感谢!非常感谢你,戴,它真的很有魅力!根据您的建议,我将其更改为
yyyy-MM-dd
,谢谢您,因为这是该应用程序确保文件在文件夹中按时间顺序自动排序的主要原因之一。一旦我达到15分,我会回来投票,非常感谢!非常感谢你,戴,它真的很有魅力!根据您的建议,我将其更改为
yyyy-MM-dd
,谢谢您,因为这是该应用程序确保文件在文件夹中按时间顺序自动排序的主要原因之一。一旦我达到15分,我会回来投票,非常感谢!别忘了接受解决你问题的答案之一。别忘了接受解决你问题的答案之一。