我有一个日期作为字符串,格式如下"04/02/2011 20:27:05".我正在使用Joda-Time库,并希望将其转换为DateTime对象.我做了:
DateTime dt = new DateTime("04/02/2011 20:27:05")
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Invalid format: "04/02/2011 14:42:17" is malformed at "/02/2011 14:42:17"
Run Code Online (Sandbox Code Playgroud)
如何将上述日期转换为DateTime对象?
我正在尝试编写一个简单的Bash脚本.我有一个简单的"模板"变量:
template = "my*appserver"
Run Code Online (Sandbox Code Playgroud)
然后,我有一个函数(get_env())返回的值dev,qa或live.我想调用get_env然后template使用get_env's返回值对变量进行字符串替换,并将其与星号交换掉.所以:
# Returns "dev"
server = get_env
# Prints "mydevappserver"
template = string_replace(server, template)
Run Code Online (Sandbox Code Playgroud)
要么:
# This time, it returns "live"
server = get_env
# Prints "myliveappserver"
template = string_replace(server, template)
Run Code Online (Sandbox Code Playgroud)
我应该用什么来代替这个string_replace()功能来完成绑定?
真的很快就要讨论了,因为我想得到不同人的意见.
我正在开发一个必须离线可用的网页应用程序.
现在要做到这一点,据我所知,您将使用应用程序缓存功能或使用服务工作者.
但是,这是我的难题.在研究应用程序缓存时,MDN明确指出:
不推荐使用:
此功能已从Web标准中删除.虽然有些浏览器可能仍然支持它,但它正在被删除.不要在旧项目或新项目中使用它.使用它的页面或Web应用程序可能随时中断.
之后,另一个对话框建议使用服务工作者.
然后,Service Workers页面继续说明Service Workers是一种实验性技术,最好参考兼容性表.
兼容性表说Safari和Internet Explorer不支持Service Workers.进一步咨询该网站,并假设它是准确的,它表示微软已经开始整合服务工作者的工作,但对于Safari,他们"正在考虑""五年计划中的短暂积极信号".
现在这是当前项目的一个问题,因为它必须与Safari兼容,但是,我也不希望它在其他浏览器中破解.
你的建议是什么?只需使用较旧的应用程序缓存并在不久的将来更新?确定用户浏览器并采取适当的行动?或者,我还有另一种方法吗?
html5 application-cache offline-caching offlineapps service-worker
是否可以进行典型调用java.util.logging.Logger并使用SLF4J将其路由到Logback?这将是很好的,因为我不必逐行重构旧的jul代码.
EG,说我们有这条线:
private static Logger logger = Logger.getLogger(MahClass.class.getName());
//...
logger.info("blah blah blah");
Run Code Online (Sandbox Code Playgroud)
将其配置为通过SLF4J调用会很好.
我正在寻找最经济有效的逐行读取STDIN的方法.
第一行是要测试的条件数.以下所有行都是条件(字符串),最多为100 000个字符.
我已经尝试了以下(加上4次90 000个字符的结果:
带有while循环的扫描仪(7255 ms)
Scanner sc = new Scanner(System.in);
int numberOfLines = Integer.parseInt(sc.nextLine());
long start = 0;
int i = 1;
while (i<=numberOfLines){
start = System.currentTimeMillis();
sc.nextLine();
Debug.println((System.currentTimeMillis()-start) + "ms for scanner while");
i++;
}
Run Code Online (Sandbox Code Playgroud)
带有for循环的扫描仪(7078 ms)
Scanner sc = new Scanner(System.in);
int numberOfLines = Integer.parseInt(sc.nextLine());
long start = 0;
for (int i = 1; i<= numberOfLines;i++){
start = System.currentTimeMillis();
sc.nextLine();
Debug.println((System.currentTimeMillis()-start) + "ms for scanner for");
//i++;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用BackboneJS在Web应用程序中使用Jasmine编写单元测试.
有很多示例向您展示如何以这种方式检查值:
it("should set the id property to default value", function()
{
expect(this.task.get("id")).toEqual(null);
});
Run Code Online (Sandbox Code Playgroud)
但是我找不到任何使用Jasmine检查Javascript中的属性是否为数字或字符串的示例.
这样检查是否合适?
如果是的话,制作它的正确方法是什么?
示例:我想检查是否id是大于0的整数.如何在Jasmine中创建它?
我对Python和Python中的单元测试比较陌生.从Java世界我知道模拟的概念,但它似乎与我在Python中看到的有很大不同.
我找到了这个指南,我发现它非常有用:http://www.voidspace.org.uk/python/mock/index.html
但是当我使用模拟的依赖关系编写我的(更复杂的)测试时,我注意到了一个strage行为.我决定创建一个简化的简单示例,它也不像我预期的那样工作.
看看这个,结果以及我作为评论添加的期望:
import unittest
from mock import patch, Mock, MagicMock
class BasicTest(unittest.TestCase):
@patch("StringIO.StringIO")
def testSomethingNotWorkingAsExpected(self, StringIOMock):
StringIOMock.assert_called_once() # asserts, but why?
@patch("StringIO.StringIO")
def testSomethingSomehowWorking(self, StringIOMock):
# self.instantiateStringIO() # intentionally commented out
assert StringIOMock.called # does not assert (leading to failure of this test); as expected. If the above line is not commented, this asserts as expected.
def instantiateStringIO(self):
import StringIO
StringIO.StringIO()
Run Code Online (Sandbox Code Playgroud)
为什么assert_called_once()断言实例化StringIO甚至还没有实例化呢?为什么会assert ClassMock.called带来预期的结果呢?
使用assert not ...断言的方法还没有被调用,我发现在这里:断言使用模拟函数/方法不叫 …
我试图理解什么决定了点击嵌套时触发事件处理程序的顺序<div>- 我所看到的似乎与记录的行为不一致所以我正在寻找一些帮助来理解它.
我有2个嵌套的div,每个都有2个事件处理程序,一个用于捕获阶段,另一个用于冒泡阶段:
<html>
<head>
<script>
function setup(){
var outer = document.getElementById('outer');
outer.addEventListener('click', function(){console.log('outer false');}, false);
outer.addEventListener('click', function(){console.log('outer true');}, true);
var inner = document.getElementById('inner');
inner.addEventListener('click', function(){console.log('inner false');}, false);
inner.addEventListener('click', function(){console.log('inner true');}, true);
}
</script>
<style>
div {
border: 1px solid;
padding: 1em;
}
</style>
</head>
<body onload="setup()">
<div id="outer">
<div id="inner">
CLICK
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
根据我所读的输出应该是:
outer true
inner true
inner false
outer false
Run Code Online (Sandbox Code Playgroud)
但我实际看到的(在Chrome和Firefox上)是:
outer true
inner false
inner true
outer false
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这种差异吗?
在 Firefox DevTools 中,如果我将鼠标悬停在任何 CSS 上,就会有辅助线:

谷歌浏览器中是否有设置可以获得这样的辅助线?
google-chrome google-chrome-devtools firefox-developer-tools
所有分配的服务仅声明16位UUID.如果必须以该格式指定服务,如何确定128位对应项?
从服务发现协议概述我知道128位UUID基于所谓的"BASE UUID",在那里也有说明:
00000000-0000-1000-8000-00805F9B34FB
Run Code Online (Sandbox Code Playgroud)
但是如何从16位对应物创建128位UUID?可能有一些0位必须被替换,但是哪个以及如何?
java ×3
bash ×1
bluetooth ×1
datetime ×1
html5 ×1
jasmine ×1
javascript ×1
jodatime ×1
logging ×1
mocking ×1
offlineapps ×1
optimization ×1
performance ×1
python ×1
python-2.7 ×1
replace ×1
shell ×1
slf4j ×1
stdin ×1
unit-testing ×1
uuid ×1