我在埃塞俄比亚,我们有13个月.其中12个,每个30天,第13个月,5天或6天.我想使用BindingSourcesort方法按日期对数据进行排序.但要做到这一点,我需要将我的日期字段设置为日期数据类型.当我设置DataType到日期时,我不能输入一些值,如月份值为13,第二个月的日值为30.
我想要的只是让我的应用程序接受13作为一个月,30作为所有月份的一天,以便我可以按日期对数据进行排序.是否可以通过为我的应用程序设置文化或通过其他方式这样做?
在asp.net中,LCID 127所代表的文化是什么?
<%Response.Write(System.Globalization.CultureInfo.InvariantCulture.LCID)%>
Run Code Online (Sandbox Code Playgroud)
输出= 127.
我正在使用Razor开发MVC3应用程序.我在使用日期时遇到了麻烦,并在我的观点上加倍.我的Windows和Visual Studio都是英文版,但我想在"it-IT"中自定义项目的文化.我发现了几篇文章如何管理不同的文化,通过JQuery Validation插件或直接在页面上设置文化,但我很困惑!我想用于日期的格式是"DD/MM/YYYY",而双倍的格式是1.234,32.所以,
显然任何建议都会受到赞赏.我发布了我的项目代码:
Offerta.cs
[MetadataType(typeof(Offerta_Validation))]
public partial class Offerta
{
}
public class Offerta_Validation
{
[HiddenInput(DisplayValue = false)]
public int IDOfferta { get; set; }
[StringLength(300, ErrorMessage = "Campo troppo lungo")]
[Required(ErrorMessage = "Campo obbligatorio")]
public string Titolo { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:N2}")]
[Required(ErrorMessage = "Campo obbligatorio")]
[Price(MinPrice=0.01)]
public decimal PrezzoIniziale { get; set; }
[Required(ErrorMessage = "Campo obbligatorio")]
[Integer]
public int BuoniScontiMinimo { get; set; }
public string …Run Code Online (Sandbox Code Playgroud) 好吧,我正在尝试获取文化的默认日期格式.
例如,en-us有"m/dd/yyyy",en-uk'd/mm/yyyy'.文化可以是客户机器上的任何东西.和Dateformat也可以是任何东西.喜欢文化就是我们,但是dateformat是dd-MMM-yyyy.
所以这个例子我想把ShortDateformatString作为m/dd/yyyy而不是dd-MMM-yyyy.
我尝试使用以下方法为所有文化做到这一点:
string _cultureInfo = CultureInfo.CurrentCulture.IetfLanguageTag;
CultureInfo shortDatefomatString = new CultureInfo(_cultureInfo);
string old = shortDatefomatString.DateTimeFormat.ShortDatePattern;
Run Code Online (Sandbox Code Playgroud)
但它总是返回dd-MMM-yyyy.我需要默认的一个而不是机器上的设置.
背景:
我有一个组件的问题,每次调用它的特定方法后,它会将当前线程文化更改为"en-US".进一步在我的过程中导致问题,例如数据访问层不再工作,因为SqlParameter的CultureInfo也变为"en-US",因此给定的字符串不能再被解析为DateTime SqlValue.
可能的方法:
因此,我们的想法是在之前备份线程当前文化,然后在调用特定方法后恢复它,这会改变当前线程文化.在恢复文化时,我会检查文化是否完全改变了.
问题/问题:
我可以比较backuped CultureInfo.Name,Thread.CurrentThread.CurrentCulture.Name但我也可以使用.Equals()CultureInfo实例的方法.哪个是比较两个CultureInfo实例的更好方法?可能有第三个/更好的解决方案吗?
可以使用dd-mm-yyyy或dd-mmm-yyyy用于英国吗?我dd-mmm-yyyy在英国的网络应用程序中使用了格式。
Select CONVERT(varchar(11),ArrivalDate,106)
Run Code Online (Sandbox Code Playgroud)
但对方PM问我,
您确定这是英国的正确日期格式吗?
我在网上搜索,但dd-mm-yyyy没有找到有关dd-mmm-yyyy英国的信息。您能告诉我它们对于不同国家/地区是否是两种不同的格式,或者只是显示样式并且可以用于像英国这样的国家/地区?
我有一个采用StringComparison参数的方法,它确实需要一个单元测试来证明它正在执行正确的比较类型.
这基本上是我到目前为止所做的.它通过比较"oe"和"œ"(参见System.String)将Ordinal与其余部分区分开来.但是,我没有找到区分CurrentCulture和InvariantCulture的方法.
using System;
using NUnit.Framework;
using System.Threading;
using System.Globalization;
namespace NUnitTests
{
[TestFixture]
public class IndexOfTests
{
[Test]
public void IndexOf_uses_specified_comparison_type()
{
StringComparison comparisonTypePerformed;
result = TestComparisonType(StringComparison.CurrentCulture);
Assert.AreEqual(StringComparison.CurrentCulture, comparisonTypePerformed);
result = TestComparisonType(StringComparison.InvariantCulture);
Assert.AreEqual(StringComparison.CurrentCulture, comparisonTypePerformed);
result = TestComparisonType(StringComparison.Ordinal);
Assert.AreEqual(StringComparison.CurrentCulture, comparisonTypePerformed);
}
bool TestComparisonType(StringComparison comparisonType)
{
int result;
// Ensure the current culture is consistent for test
var prevCulture = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);
try
{
result = IndexOf("oe", "œ", comparisonType);
if (result == 0)
{
// …Run Code Online (Sandbox Code Playgroud) 我和Dates度过了一段噩梦.我们的总部设在英国,因此我们的日期格式为dd/MM/yyyy.这是用户在需要特定日期时将在表单中键入的内容.我有一个表格只接受这样的财产.它显然是一个DateTime类型.我想在GET中将此表单发送到控制器,因此用户有一个很好的URL,可以保存传递等等.视图还需要将JQuery UI datepicker绑定到此元素.我还需要表单元素具有一定的id和类,所以我真的需要将其呈现给表单:
@Html.TextBoxFor(model => model.ReturnDate, new { Class = "date", id = "ReturnDate" })
Run Code Online (Sandbox Code Playgroud)
我在web.config中指定了一个英国文化变体:
<globalization uiCulture="en" culture="en-GB"/>
Run Code Online (Sandbox Code Playgroud)
然而,正如这里所解释的那样(http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx),当获取控制器启动时,MVC忽略了培养变体默认为美国(显然没有人存在于美国以外,所以这对微软来说没问题,咆哮)附件无济于事,因为这意味着我必须为每个模型中的每个日期设置它!
这意味着,如果用户键入01/05/2012,我最终会遇到05/01/2012,这是错误的!
我已经看过这个问题的各种解决方案,但没有一个真正符合我的需要.我需要一种方法,以便通过GET发送的所有日期都是英国格式.我们完全位于英国,因此不会输入任何英国格式.
我真的不想创建和编辑,除非它是一种我可以在没有附加到此编辑器的View/Viewmodel的情况下执行此操作的方法,因为在我们有日期选择器的任何地方使用它都会非常困难.
所有的帮助将非常感谢!
有几个国家(土耳其,蒙古,吉尔吉斯斯坦等),一般男性的名字可能没有中间名,而不是使用像"oglu,uulu"等词.
例如"Michael oglu Bret",意思是"布雷特的迈克尔之子".
我曾经把这种话分开并假设它们作为中间名,所以在过去的一周里,我对我这样做的方式的正确性表示怀疑.
是否有任何标准化或一套如何处理这种名称的规则?
我使用 Pandoc 从 Markdown 导出 Word docx。
默认情况下,docx 文件中的所有内容似乎都标记为英语。所以我试图覆盖它,例如通过命令行选项pandoc -s -S images.md -o images.docx -V lang=de或在标题 YAML 中:
---
subtitle: <%= @report.name %>
toc-title: <%= t('.toc_title') %>
lang: de
---
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何效果,导出的 docx 文件中的所有内容都被语言拼写功能标记为红色,告诉我在英语中找不到单词。
如何覆盖语言?
更新
我尝试在 docx 文件中指定语言,只需选择所有文本(Cmd+A,我在 OSX 上)并单击左下角的语言按钮。
另外,我尝试使用Tools -> Language:
虽然没有任何影响。
更新
有趣的是,在导出为 HTML 时,在<html>属性中正确设置了语言。
culture ×10
c# ×4
.net ×2
asp.net-mvc ×2
date ×2
algorithm ×1
asp.net ×1
calendar ×1
countries ×1
cultureinfo ×1
datetime ×1
lcid ×1
localization ×1
ms-word ×1
pandoc ×1
parsing ×1
unit-testing ×1
validation ×1