首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能用欧洲符号存储我的DateTime吗?

我能用欧洲符号存储我的DateTime吗?
EN

Stack Overflow用户
提问于 2016-12-01 09:39:22
回答 2查看 1.5K关注 0票数 0

我正在设法用欧洲符号存储 my DateTime-object。现在,当我将文本框绑定到对象的DateTime-property时,它显示为MM/dd/yyyy :mm(或PM)。我想把它保存在这个表示法中的原因是我不能通过ToString("dd/MM/yyyy HH:MM")修改这个表示法,因为相同的属性也被用来更新其他的DateTime-properties。这将需要大量重写(每次我检索字符串来设置另一个对象的DateTime时,我都必须将其返回到一个DateTime-format),因此我正在试图找出是否有一种方法可以将它保存在所需的符号中。

一个很明显不起作用的例子,但是让我想起了这个想法,

代码语言:javascript
运行
复制
public DateTime<dd/MM/yyyy HH:mm> ModifiedAt { get; set; }

我试着想看看我能不能强迫它以这样的方式追踪,

代码语言:javascript
运行
复制
public DateTime ModifiedAt
    {
        get { return this.modifiedAt; }
        set
        {
            var s = value.ToString("dd/MM/yyyy HH:mm");
            DateTime.TryParse(s, out this.modifiedAt);
            this.RaisePropertyChanged();
        }
    }

但没有结果。由于我开始怀疑这是可能的,我很好奇是否有人曾经遇到过这个问题。也许有一种方法可以改变绑定声明中的显示字符串?当我使用MVVM时,我将我的视图模型设置为数据文本,我的绑定如下所示,

代码语言:javascript
运行
复制
<TextBox Text="{Binding SelectedObject.ModifiedAt, Mode=OneWay}"/>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-01 10:18:05

用xaml格式化您的DateTime属性。

代码语言:javascript
运行
复制
<TextBox Text="{Binding MyDateTimeProperty, StringFormat='dd/MM/yyyy HH:mm'}"/>

As explained here

票数 2
EN

Stack Overflow用户

发布于 2016-12-01 09:59:41

要在不同的区域性(如欧洲)中显示DateTime,您需要为线程设置区域性,而且由于您必须在应用程序中使用ThreadsTasks,所以必须使用下面的代码来设置将来将创建的所有线程和任务的默认区域性。

代码语言:javascript
运行
复制
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("de-DE");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("de-DE");

如果只需要更改当前的线程区域性:

代码语言:javascript
运行
复制
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.DefaultThreadCurrentCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.DefaultThreadCurrentCulture;

就像你一样,我有一个TextBox:

代码语言:javascript
运行
复制
<TextBox x:Name="textBox"/>

如果我将当前日期/时间设置为Text属性:

代码语言:javascript
运行
复制
textBox.Text = DateTime.Now.ToString();

日期将显示为01.12.2016 13:27:58

我的Windows区域性已设置为en-us格式,因为您可以看到textbox值是de-De格式的。

更新1:

为了设置默认区域性,我建议在App类中创建一个新的构造函数,如下所示,我试过了,它可以工作。

代码语言:javascript
运行
复制
public partial class App : Application
{       
    public App()
        :base()
    {
        CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("de-DE");
        CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("de-DE");
    }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40907074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档