如何格式化日期/时间字符串,以便可以DateTime.TryParseExact使用"U"格式字符串解析它DateTimeStyles.AdjustToUniversal?换句话说,什么是有效的timestampString,这样isDateTime被设置为true在下面的代码?
string timestampString = "...";
DateTime timestamp;
bool isDateTime = DateTime.TryParseExact(
timestampString, "U", null, DateTimeStyles.AdjustToUniversal, out timestamp);
Run Code Online (Sandbox Code Playgroud) 我希望能够在从字符串创建新日期时输入英国格式的日期,这将适用于所有现代浏览器,但主要是 FireFox 和 IE。
new Date('24/06/2014') // Gives 06/24/2014
Run Code Online (Sandbox Code Playgroud)
因为我想使用它设置一个 jquery datepicker。
是否有可能获得
new Date()
Run Code Online (Sandbox Code Playgroud)
解释作为字符串传递的英国日期?
new Date('24/06/2014').toLocaleString("en-GB") // Gives 06/12/2015
new Date('06/24/2014').toLocaleString("en-GB") // Gives 24/06/2014
Run Code Online (Sandbox Code Playgroud)
真正的问题是当我使用日期选择器时,我指定了英国日期格式,一切都很好......
$("#outOfStockFromDate").datepicker({
dateFormat: 'dd/mm/yy',
changeMonth: true,
numberOfMonths: 3,
onClose: function (selectedDate) {
$("#to").datepicker("option", "minDate", selectedDate);
}});
Run Code Online (Sandbox Code Playgroud)
直到我尝试使用这种英国日期格式重新填充日期选择器,例如...
$("#outOfStockFromDate").datepicker("setDate", testDate);
Run Code Online (Sandbox Code Playgroud)
就好像字符串 'testDate' 必须是美国格式... grrr
编辑:我意识到这个问题有两部分,第一部分处理日期选择器;我在尝试 setDate 的同时初始化它是我的愚蠢错误(这个错误使我沿着 Date() 路线走下去)。现在我已经初始化并正确更改它接受英国格式日期!
第二部分是的,javascript 中关于格式化日期的日期功能(现在我知道)是出了名的缺乏......但是当我解决了我最初的问题时,我不关心这个...... PS我最终分裂并重建了美国日期格式(字符串)中的日期,然后使用新日期(USDateFormattedString)......然后我意识到!
所以最后,基本上我的代码在语法上是正确的,但在执行时却不是。
感谢所有回答的人!+1
我将以下日期21:50:04 Nov 13, 2017 PST作为字符串,我使用以下代码对其进行格式化(仅显示月份和日期)。
Utilities.formatDate(new Date(inData[r][0]), "GMT", 'MMM-dd')
Run Code Online (Sandbox Code Playgroud)
我得到的输出是Nov-14,我尝试更改GMT-05:00仍然产生相同结果的区域。
谁能告诉我我必须做哪些更改才能返回Nov-13相同的输入。
目前正在开发一个处理不同语言的项目,并且在以 PM/AM 格式显示毫秒时遇到了奇怪的行为。
如果我想使用 AM/PM 格式显示毫秒精度的日期/时间对,我会得到如下内容:
12/14/2017 3:45:45 PM.199
Run Code Online (Sandbox Code Playgroud)
而 24 小时格式的相同日期/时间显示如下:
12/14/2017 15:45:45.199
Run Code Online (Sandbox Code Playgroud)
有没有办法显示 AM/PM 格式,如下所示:
12/14/2017 3:45:45.199 PM
Run Code Online (Sandbox Code Playgroud)
目的是根据用户本地化选项显示日期/时间,这就是我使用“L LTS”格式的原因。
var divEn = $('#divEn');
var divFi = $('#divFi');
var en = "en";
var pt = "pt";
var dateEn = moment().locale(en);
var dateFi = moment().locale(pt);
format = "L LTS.SSS";
divEn.text(dateEn.format(format));
divFi.text(dateFi.format(format));
Run Code Online (Sandbox Code Playgroud) 我是 Java 新手。我想在文本末尾获取带有时区的日期格式。
2017-11-23T23:43:45-05:00[America/New_York]
Run Code Online (Sandbox Code Playgroud)
我现在拥有的是这个,我还想在那里添加用户的默认时区作为时区。这是我目前拥有的:
SimpleDateFormat trust = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)
这给了我(示例):
2018-08-17T22:39:39-0400
Run Code Online (Sandbox Code Playgroud) 以下是我要采用的方法:
Date DateObject = new Date();
SimpleDateFormat formatDate = new SimpleDateFormat("dd MMMM yyyy");
String dateString = formatDate.format(DateObject);
System.out.println(dateString);
Run Code Online (Sandbox Code Playgroud)
现在这给了我所需格式的当前日期。我想找到从该日期算起两个月内相同格式的日期值。
我还尝试使用以下方法:
LocalDate futureDate = LocalDate.now().plusMonths(2);
Run Code Online (Sandbox Code Playgroud)
这为我提供了我想要的日期,即从现在起两个月后的日期,但格式为 2019-04-24。当我尝试使用 SimpleDateFormat 格式化此日期时,它给了我非法参数异常。
输入日期:“ 2019-09-11T14:14:00.000-05:00”,需要输出日期:“ 2019-09-11T14:14:00Z”
数据波代码-
(“ noteDateTime”:payload.createTimeStamp as LocalDateTime {format:“ yyyy-MM-dd'T'HH:mm:ss.SSS-X”} as String {format:“ yyyy-MM-dd'T'HH:mm :ss'Z'“})
输出为“ 2019-09-11T14:01:00.000-05:00”
在Java(Android Studio)中,我有一个从数据库(Firebase)中获取的字符串,20190329它是一个日期,但我想以以下格式将其打印出来:29-03-2019。因此,我只需要移至2019字符串的末尾并29开始。我知道这可以通过使用循环来完成,但是有没有更简单的方法来实现呢?
我已经有添加了的代码,-并且效果很好:
StringBuilder sb = new StringBuilder(date); //the variable 'date' contains 20190329 or any other date from the database.
sb.insert(2, "-");
sb.insert(5, "-");
sb.insert(8, "-");
Run Code Online (Sandbox Code Playgroud) 由于某种原因,Fullcalendar 将午夜之后开始的事件显示为“24:15”。我们希望它显示“00:15”。我认为这是一个新问题,因为我们已经有一年的日历了,这是我第一次听说它。但我找不到任何有关如何解决它的信息。

我们使用的是 fullcalendar v4.2.0。原始代码不是我写的,但我对它相当熟悉。我们使用 REST API 获取事件,并且使用 ServiceNow。当使用 12 小时格式(am/pm)时,它显示 12a15。我尝试更改 eventTimeFormat,但没有成功。这是客户端脚本的一部分:
/* Calendar */
c.funcs.loadCalendar = function() {
var calendarEl = document.getElementById('calendar');
c.calendar = new FullCalendar.Calendar(calendarEl, {
contentHeight: 'auto',
plugins: [ 'dayGrid','timeGrid', 'list'],
header: {
left: 'prev next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek,listMonth'
},
buttonText: {
dayGridMonth: 'Month',
timeGridWeek: 'Week',
timeGridDay: 'Day',
listWeek: 'List Week',
listMonth: 'List Month',
today: 'Today'
},
editable: false,
eventTimeFormat: {
hour: '2-digit',
minute: '2-digit',
hour12: false
},
eventOverlap: false,
firstDay: 1,
weekNumbers: true, …Run Code Online (Sandbox Code Playgroud) 我的本地 SQL Server 2016 设置在重新安装后决定不接受 YMD 日期格式。例如,以下查询在我同事的设置中过去和现在仍然被接受:
SELECT "id"
FROM test.dbo.tabEmp
WHERE "DateAdmission" <= '2021-12-31' AND "DateAdmission">= '2021-12-30' `
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,我看到这个:
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围
但是,如果我将日期重写为2021-31-12和2021-12-30,则YYYY-DD-MM它们会被接受。
我无法真正转换或格式化它,因为我们系统中的 sql 查询非常多,并且以几乎不可能的方式完成。有什么可以做的吗?我尝试更改 Windows 的日期格式但无济于事。
date-formatting ×10
date ×3
datetime ×3
java ×3
javascript ×3
timezone ×2
.net ×1
android ×1
c# ×1
dataweave ×1
fullcalendar ×1
jquery ×1
localdate ×1
momentjs ×1
mulesoft ×1
parsing ×1
sql-server ×1