我只想帮助打印如下所示的日期。
Thu Sep 06 2018 18:18:26 GMT+0530
Run Code Online (Sandbox Code Playgroud)
我用了
console.log(new Date())
Run Code Online (Sandbox Code Playgroud)
但它的输出是
2018-09-06T12:48:25.776Z
Run Code Online (Sandbox Code Playgroud)
所以,我不知道如何转换它。
我想将字符串日期解析为DateTime但忽略时间。我的预期日期格式M/d/yyyy是3/29/2018(不带前导零)。问题是字符串可以有或没有时间部分,时间可以有我无法预测的不同格式。
var inputDateString = "12/31/2017 12:00:00 AM" // false, but I want to parse
var inputDateString = "12/31/2017" // true
DateTime.TryParseExact(inputDateString, "M/d/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate);
Run Code Online (Sandbox Code Playgroud)
有没有办法解析只有特定日期格式的日期字符串并忽略时间?
我有一个关于DateTimeFormatter格式化程序的问题。
在 SWAPI ( https://swapi.co/documentation#people ) 中,您可以阅读日期created和edited日期,格式如下:
2014-12-09T13:50:51.644000Z
Run Code Online (Sandbox Code Playgroud)
但在该文档类DateTimeFormatter在预定义的格式化程序部分,我不能看到SWAPI日期例子匹配任何格式。
问题是,当我尝试解析它时,正在使用SSSSSS:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'")
Run Code Online (Sandbox Code Playgroud)
与nnnnnn:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.nnnnnn'Z'")
Run Code Online (Sandbox Code Playgroud)
知道哪一个是正确的格式化程序吗?
在我的 android 应用程序中,我使用 Retrofit 2
@GET("/operations")
fun getOperationsList(
@Query("types") typeList: List<@JvmSuppressWildcards OperationType>,
@Query("status") statusList: List<@JvmSuppressWildcards OperationStatus>,
@Query("from") from: Date, @Query("to") to: Date
): Call<List<Operation>>
Run Code Online (Sandbox Code Playgroud)
这里结果 http 请求:
08-06 15:40:17.672 D/OkHttp ( 2436): --> GET http://my_ip:8081/operations?types=payment&types=payout&status=executed&from=Tue%20Aug%2006%2015%3A40%3A17%20GMT%2B03%3A00%202019&to=Tue%20Aug%2006%2015%3A40%3A17%20GMT%2B03%3A00%202019 http/1.1
Run Code Online (Sandbox Code Playgroud)
但我需要以from, to这种格式传递日期参数():
YYYY-MM-ddTHH:mm:ss.Z
Run Code Online (Sandbox Code Playgroud)
例子:
https://some_host/operations?types=transfer&types=payment&status=executed&from=2018-07-01T19%3A13%3A51.418Z&to=2019-08-05T11%3A04%3A22.397Z
Run Code Online (Sandbox Code Playgroud)
在 Retrofit 2 中有可能吗?
我正在使用 now() 函数向流添加动态属性。分配给属性的值是人类可读的格式。我想以 ISO 格式获取值:
2019-09-21T12:00:00Z
Run Code Online (Sandbox Code Playgroud)
我试过这个表达:
${now():format("yyyy-MM-ddTHH:mm:ss.SSS'Z'")}
Run Code Online (Sandbox Code Playgroud)
但是,我在“T”上遇到错误。
ERROR: failed to process session due to Illegal pattern character 'T';
Run Code Online (Sandbox Code Playgroud)
有没有一种使用 EL 格式化日期的快速方法?
我是 NiFi 版本 1.9.1
谢谢
我有这行代码:
// I pass milliseconds timestamp on time var
ZonedDateTime zonedDatetIme = ZonedDateTime.ofInstant(java.time.Instant.ofEpochMilli(time), java.time.ZoneId.of("Asia/Almaty"))
Run Code Online (Sandbox Code Playgroud)
当我这次尝试输出时,它返回:
System.our.println(zonedDatetIme)
// returns
2020-01-24T17:00+06:00[Asia/Almaty]
Run Code Online (Sandbox Code Playgroud)
然后我试图格式化这个日期时间:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern('dd.MM.yyyy hh:mm');
System.our.println(formatter.format(zonedDateTime));
Run Code Online (Sandbox Code Playgroud)
返回给我的是:
24.01.2020 05:00
Run Code Online (Sandbox Code Playgroud)
那是错的。这就像它减去我的时区的 6 小时而不是添加它。为什么会发生这种情况?
我正在尝试将字符串日期时间解析为JavaLocalDateTime或Date在 Java 中。我可能得到的输入,比如12/21/2020 12:12:12 PM,1/12/2020 2:6:8 PM,10/2/2020 10:50:8 AM
我尝试在DateTimeFormatter或下DateTimeFormatBuilder可以使用不同类型的模式。蛮力方法我在哪里 硬编码不同的模式组合。这是从链接复制的代码:
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
class Main {
public static void main(String[] args) {
// many combinations
final String DATE_FORMATS = "[MM/dd/yyyy HH:mm:ss a][M/dd/yyyy H:mm:ss a]";
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(DATE_FORMATS);
System.out.println(dateFormatter.parse("12/21/2020 11:12:12 AM"));
System.out.println(dateFormatter.parse("1/12/2020 2:54:55 AM"));
}
}
Run Code Online (Sandbox Code Playgroud)
有没有其他解决方案,因为我无法控制输入?我可以使用哪个单一模式而Formatter不是多个组合?或者在解析之前接收后修改输入更好吗?
我想以特定的 ISO 8601 格式格式化 UTC 日期时间,例如2020-02-28T14:10:23+00:00但不是2020-02-28T14:10:23Z。我不想要 Z 最后而是 +00:00。我尝试了simpleDateFormat doc 中的所有格式,但似乎没有提供上述格式的格式。
我知道无论格式如何,两者都表示相同的时间,但出于向后兼容性的原因,它需要像那样格式化。
这是我尝试过的java代码,
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(sdf.format(new Date()));
Run Code Online (Sandbox Code Playgroud)
可以通过在格式化字符串中用 +00:00 替换 z 来实现,但这似乎不是一个好的选择。
我想要日期格式为MM/DD/YYYY并且我正在使用Intl.DateTimeFormat
console.log(new Intl.DateTimeFormat('en-US').format(date));
Run Code Online (Sandbox Code Playgroud)
输出:“6/20/2012”
我需要的输出是“06/20/2012”
我应该做哪些改变才能得到预期的结果?
我正在尝试使用 LocalDate 解析以下字符串:“2015 年 8 月 4 日”。
在尝试了 DateTimeFormatters 的一些变体之后,我在 SO 中寻找答案并发现答案中给出的一些解析示例对我不起作用。经过进一步调查,我发现 java 14 无法解析包含字符串月份的日期,例如“Jul”、“Feb”……但在 java 8 和 10 中它完美无缺。
抛出的异常是:
java.time.format.DateTimeParseException:无法在索引 3 处解析文本“2015 年 8 月 4 日”
java 14 中的 LocalDate/DateTimeFormatter 是否有任何更改?我在文档中找不到任何内容。
这是在 java 8/10 上成功打印并在 java 14 上抛出 DateTimeParseException 的代码:
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd MMM yyyy");
String anotherDate = "04 Aug 2015";
LocalDate lds = LocalDate.parse(anotherDate, dtf);
System.out.println(anotherDate + " , " + lds);
}
Run Code Online (Sandbox Code Playgroud)