小编Mat*_*int的帖子

为什么DateTime.Now属性而不是方法?

阅读此博客文章后:http://wekeroad.com/post/4069048840/when-should-a-method-be-a-property,

我想知道为什么微软选择C#:

DateTime aDt = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

代替

DateTime aDt = DateTime.Now();
Run Code Online (Sandbox Code Playgroud)
  • 最佳实践说:在连续两次调用成员时使用方法会产生不同的结果
  • 并且DateTime.Now是非确定方法/属性的完美示例.

你知道这个设计有什么理由吗?
或者,如果这只是一个小错误?

.net c# datetime

58
推荐指数
2
解决办法
4270
查看次数

我应该如何在webpack中使用moment-timezone?

在使用webpack构建我的项目时,我通常需要来自npm模块的CommonJS中的模块.我需要在我的项目中使用时间 - 时区,但是在构建软件包时,您还必须构建来自时刻 - 时区的所有数据,这可能非常多.

此外,构建失败,出现以下错误:

ERROR in ./~/moment-timezone/data/packed/latest.json
Module parse failed: /site/node_modules/moment-timezone/data/packed/latest.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| {
|   "version": "2015a",
|   "zones": [
|       "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q",
@ ./~/moment-timezone/index.js 4:15-51
Run Code Online (Sandbox Code Playgroud)

在这一点上,我不关心构建失败,因为我关于构建的大小,如果它实际上成功.虽然,显然失败的构建也需要在某个时候得到解决.

我会很感激有关如何处理这个问题的任何指示,特别是如果你们中的任何人使用webpack(或者也可能是browserify)遇到过同样的问题.

javascript timezone node.js momentjs webpack

51
推荐指数
2
解决办法
2万
查看次数

从纬度/经度确定时区,而不使用像Geonames.org这样的网络服务

有没有可能在不使用webservices的情况下确定point(lat/lon)的时区?Geonames.org对我来说不够稳定:(我需要这个在PHP中工作.

谢谢

javascript php gis timezone geolocation

49
推荐指数
6
解决办法
4万
查看次数

使用PST/CEST/UTC /等格式的时区解析DateTime

我正在尝试解析类似于的国际日期时间字符串:

24-okt-08 21:09:06 CEST
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有类似的东西:

CultureInfo culture = CultureInfo.CreateSpecificCulture("nl-BE");
DateTime dt = DateTime.ParseExact("24-okt-08 21:09:06 CEST",
    "dd-MMM-yy HH:mm:ss ...", culture);
Run Code Online (Sandbox Code Playgroud)

问题是我应该在格式字符串中使用'...'?查看自定义日期和时间格式字符串 MSDN页面似乎没有列出用于以PST/CEST/GMT/UTC格式解析时区的格式字符串.

.net c# timezone datetime parsing

46
推荐指数
3
解决办法
7万
查看次数

如何告诉ReSharper使用系统命名空间排序使用不在顶部?

Visual Studio可以选择在排序时将系统指令放在顶部.

在此输入图像描述

取消选中此设置后,通过右键单击它们并使用" 组织使用" 功能对语句进行排序,将系统命名空间按字母顺序放置在所有其他命名空间导入中.

但是,ReSharper似乎并不尊重此设置,它在自己的Namespace Imports选项页面上也没有类似的东西.它总是表现得好像您希望系统名称空间位于顶部.当你已经在底部有一些并且让ReSharper建议导入命名空间时,这尤其令人讨厌,那么你最终会在列表的两端找到一些.

有办法解决这个问题吗?或者这只是ReSharper中的一个错误/疏忽?

resharper visual-studio-2012

44
推荐指数
2
解决办法
1万
查看次数

为f:convertDateTime设置默认时区

我使用JSF1.2,我的时区有点问题.

日历尊重我的时区并在数据库中保存正确的时间.当我使用ah显示它时:输出文本与af:convertDateTime它显示错误的日期(我认为使用默认时区).

我可以这样做:

<h:outputText value="#{atividade.atividade.dataCriacao.time}">
  <f:convertDateTime pattern="#{msg.formatoDataCalendario2}" timeZone="America/Sao_Paulo" />
</h:outputText>
Run Code Online (Sandbox Code Playgroud)

formatoDataCalendario2 = dd/MM/yyyy,HH:mm在messages.properties中.

我也可以将时区放在消息中,但我相信它有一些我可以使用的配置.

jsf timezone

36
推荐指数
1
解决办法
4万
查看次数

使用ReSharper,如何在长时间运行的单元测试中显示调试输出?

我正在使用xUnit和ReSharper测试运行器以及xUnitContrib resharper 插件.

当我有一个长时间运行的测试时,我希望能够将一些进度指示器输出到Unit Test Output窗口.

我试过了Debug.WriteLines,Trace.WriteLine而且Console.WriteLine.所有这些都具有相同的行为 - 在测试完成之前,输出窗口中没有显示任何内容.

例如:

[Fact]
public void Test()
{
    Debug.WriteLine("A");
    Trace.WriteLine("B");
    Console.WriteLine("C");

    Thread.Sleep(10000);
}
Run Code Online (Sandbox Code Playgroud)

测试显示没有输出,直到10秒钟结束并且测试完成.我如何获得输出?

更新1

我也试过MSTest和NUnit.NUnit是唯一一个在整个过程中显示输出的人.

在测试完成之前,MSTest和XUnit不会返回任何输出.奇怪的是,XUnit和NUnit测试输出如下所示:

A
B
C
Run Code Online (Sandbox Code Playgroud)

MSTest输出如下所示:

C


Debug Trace:

A
B
Run Code Online (Sandbox Code Playgroud)

鉴于所有这些变化,我认为答案是由测试运行器实现决定如何以及何时输出.有谁知道是否可以配置XUnit测试运行器?

更新2

我认为这必须是xUnitContrib的一个缺陷.发布到他们的CodePlex问题跟踪器.

c# resharper unit-testing xunit visual-studio

33
推荐指数
5
解决办法
1万
查看次数

从moment.js对象中删除时区

我正在使用datetimepicker.js,它的date函数返回一个moment.js对象.它使用本地UTC偏移量并且我的原始日期具有不同的偏移量.

我的原始日期:

2015-10-01T15:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

我在日期时间选择器(DD-MM HH:mm)上显示的内容:

01-10 15:00
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

2015-10-01T15:40:00+01:00
Run Code Online (Sandbox Code Playgroud)

我想要的是:

2015-10-01T15:40:00+00:00
Run Code Online (Sandbox Code Playgroud)

请注意我最后如何删除+01偏移量.

如何将其应用于任何本地UTC?这是,无需手动删除01(因为它可以是任何其他本地偏移,具体取决于用户位置).

var momentDate = timePicker.data("DateTimePicker").date();
console.log(momentDate.format());
//this prints  2015-10-01T15:40:00+01:00
Run Code Online (Sandbox Code Playgroud)

javascript datetimepicker momentjs

33
推荐指数
4
解决办法
5万
查看次数

如何检测用户的时区?

我需要根据IP或http标头知道我的用户目前在哪个时区.

关于这个问题,我得到了很多答案,但我无法理解这些答案.有人说使用-new Date().getTimezoneOffset()/60(从这里).但是这是什么意思?

我date_default_timezone_set("Asia/Calcutta");在(index.php)页面的根目录中有一个.因此,我必须动态获取时区并将其设置为代替Asia/Calcutta.

javascript php timezone

26
推荐指数
2
解决办法
5万
查看次数

Date.toLocaleString()的Chrome timeZone选项

我最近发现JavaScript有一个新的扩展.这增加了一些功能,可以在Date对象中toLocaleString,toLocaleDateString和toLocaleTimeString功能. 参考这里.

我对timeZone支持IANA/Olson时区的选项特别感兴趣,例如America/New_York或Europe/London. 目前仅在Google Chrome中支持此功能.

以前的建议是,要使用除UTC或您自己的本地时区之外的任何其他时区的JavaScript,必须使用库.但现在,它似乎开始直接纳入浏览器.所以现在你可以这样做:

new Date().toLocaleString("en-US", {timeZone: "America/New_York"})

// output: "7/4/2013 5:15:45 PM"
Run Code Online (Sandbox Code Playgroud)

要么:

new Date().toLocaleString("en-NZ", {timeZone: "Pacific/Chatham",
                                    timeZoneName: "long"})

// output:  "7/5/2013 9:59:52 AM GMT+12:45"
Run Code Online (Sandbox Code Playgroud)

要么:

new Date().toLocaleString("en-GB", {timeZone: "Europe/London",
                                    timeZoneName: "short"})

// output:  "4/7/2013 22:18:57 United Kingdom Time"
// (strange time zone name, but ok)
Run Code Online (Sandbox Code Playgroud)

这是非常酷,但我有几个问题:

  • 这是新标准的一部分吗?也许埋在ECMAScript 6的某个地方?或者它只是Chrome的自定义内容?
  • 为何只使用Google Chrome?它在其他地方是否受支持?是否有计划在其他任何地方支持它?
  • 我检查了使用Chrome的JavaScript运行时的node.js,但它在那里不起作用.为什么不?
  • 时区数据是否可以通过我列出的功能以外的任何其他方式访问?如果仅在格式化字符串时可用,则根据结果进行任何计算可能很困难.
  • 这主要关注输出,但我如何将其用于输入?有没有办法将构造函数中的时区传递给Date …

javascript timezone google-chrome internationalization ecmascript-intl

24
推荐指数
2
解决办法
2万
查看次数